From 75f23d456816d5767ae91735079c566a9a98a41b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E8=87=AA=E8=BE=BE?= <980324341@qq.com> Date: Wed, 26 Aug 2026 03:58:29 -0400 Subject: [PATCH] =?UTF-8?q?=E7=BB=9F=E4=B8=80=E7=BB=93=E6=9E=9C=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E4=B8=8B=E8=BD=BD=20URL=20=E7=94=9F=E6=88=90=EF=BC=9A?= =?UTF-8?q?=E5=8E=86=E5=8F=B2=E8=AE=B0=E5=BD=95/=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E5=9B=9E=E5=8C=85=E7=AD=89=E6=BC=8F=E7=BD=91=E7=82=B9=E6=94=B9?= =?UTF-8?q?=E7=94=A8=20generateFreshDownloadUrl=EF=BC=8Cresult/=20?= =?UTF-8?q?=E5=89=8D=E7=BC=80=E5=AF=B9=E8=B1=A1=E8=B5=B0=20download=20?= =?UTF-8?q?=E5=9F=9F=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../aiimage/modules/brand/service/BrandTaskService.java | 6 +++--- .../modules/collectdata/service/CollectDataService.java | 4 ++-- .../modules/deletebrand/service/DeleteBrandRunService.java | 4 ++-- .../aiimage/modules/file/service/oss/OssStorageService.java | 2 +- .../modules/similarasin/service/SimilarAsinTaskService.java | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/backend-java/src/main/java/com/nanri/aiimage/modules/brand/service/BrandTaskService.java b/backend-java/src/main/java/com/nanri/aiimage/modules/brand/service/BrandTaskService.java index b6e66238..6ced901c 100644 --- a/backend-java/src/main/java/com/nanri/aiimage/modules/brand/service/BrandTaskService.java +++ b/backend-java/src/main/java/com/nanri/aiimage/modules/brand/service/BrandTaskService.java @@ -1065,9 +1065,9 @@ public class BrandTaskService { List> uploadFutures = new ArrayList<>(entries.size()); for (OutputEntry entry : entries) { uploadFutures.add(CompletableFuture.supplyAsync(() -> { - // 存储完整公开地址,下载时会自动通过 resolveObjectKey 提取 objectKey(见 OssStorageService.resolveObjectKey) + // 存储完整公开地址:result/ 前缀走 download-endpoint 独立下载域名,下载时可直接使用 String objectKey = ossStorageService.uploadResultFile(entry.resultFile(), MODULE_TYPE); - return ossStorageService.getPublicUrl(objectKey); + return ossStorageService.generateFreshDownloadUrl(objectKey); }, resultUploadExecutor)); } for (CompletableFuture future : uploadFutures) { @@ -1089,7 +1089,7 @@ public class BrandTaskService { File zipFile = packageAsZip(taskId, entries); String zipObjectKey = ossStorageService.uploadResultFile(zipFile, MODULE_TYPE); result.put("zip_object_key", zipObjectKey); - result.put("zip_url", ossStorageService.getPublicUrl(zipObjectKey)); + result.put("zip_url", ossStorageService.generateFreshDownloadUrl(zipObjectKey)); return result; } diff --git a/backend-java/src/main/java/com/nanri/aiimage/modules/collectdata/service/CollectDataService.java b/backend-java/src/main/java/com/nanri/aiimage/modules/collectdata/service/CollectDataService.java index 4c9496b6..9310d3ce 100644 --- a/backend-java/src/main/java/com/nanri/aiimage/modules/collectdata/service/CollectDataService.java +++ b/backend-java/src/main/java/com/nanri/aiimage/modules/collectdata/service/CollectDataService.java @@ -1593,8 +1593,8 @@ public class CollectDataService { } try { // bucket 对 result/ 前缀已开放公开读,使用无签名公开 URL,避免签名 1 小时过期后下载 403。 - // resolveObjectKey 兼容历史存量的旧格式(带签名的完整 URL),统一还原为纯 objectKey 再拼公开 URL。 - return ossStorageService.getPublicUrl(ossStorageService.resolveObjectKey(resultFileUrl)); + // result/ 前缀走 download-endpoint 独立下载域名(带宽/缓存分流),非 result/(如图片)仍走公开端点。 + return ossStorageService.generateFreshDownloadUrl(resultFileUrl); } catch (Exception ex) { log.warn("[collect-data] build public download url failed resultId={} err={}", row.getId(), ex.getMessage()); diff --git a/backend-java/src/main/java/com/nanri/aiimage/modules/deletebrand/service/DeleteBrandRunService.java b/backend-java/src/main/java/com/nanri/aiimage/modules/deletebrand/service/DeleteBrandRunService.java index 75d7c710..75c4515d 100644 --- a/backend-java/src/main/java/com/nanri/aiimage/modules/deletebrand/service/DeleteBrandRunService.java +++ b/backend-java/src/main/java/com/nanri/aiimage/modules/deletebrand/service/DeleteBrandRunService.java @@ -1975,7 +1975,7 @@ public class DeleteBrandRunService { public String resolveTaskDownloadUrl(Long taskId) { FileResultEntity entity = findLatestSuccessfulResult(taskId); - return entity == null || entity.getResultFileUrl() == null ? null : ossStorageService.getPublicUrl(entity.getResultFileUrl()); + return entity == null || entity.getResultFileUrl() == null ? null : ossStorageService.generateFreshDownloadUrl(entity.getResultFileUrl()); } public String resolveTaskDownloadFilename(Long taskId) { @@ -1985,7 +1985,7 @@ public class DeleteBrandRunService { public String resolveResultDownloadUrl(Long resultId, Long userId) { FileResultEntity entity = findDownloadableResult(resultId, userId); - return entity == null || entity.getResultFileUrl() == null ? null : ossStorageService.getPublicUrl(entity.getResultFileUrl()); + return entity == null || entity.getResultFileUrl() == null ? null : ossStorageService.generateFreshDownloadUrl(entity.getResultFileUrl()); } public String resolveResultDownloadFilename(Long resultId, Long userId) { diff --git a/backend-java/src/main/java/com/nanri/aiimage/modules/file/service/oss/OssStorageService.java b/backend-java/src/main/java/com/nanri/aiimage/modules/file/service/oss/OssStorageService.java index a3e538a2..b77fa248 100644 --- a/backend-java/src/main/java/com/nanri/aiimage/modules/file/service/oss/OssStorageService.java +++ b/backend-java/src/main/java/com/nanri/aiimage/modules/file/service/oss/OssStorageService.java @@ -54,7 +54,7 @@ public class OssStorageService { String objectKey = resultObjectKey(file, moduleType); String bucket = resolveBucket(moduleType); uploadFile(file, bucket, objectKey); - return new UploadedResult(objectKey, getPublicUrl(objectKey, bucket)); + return new UploadedResult(objectKey, generateFreshDownloadUrl(objectKey)); } public UploadedResult uploadPublicFileWithFreshDownloadUrl(File file, String moduleType, String originalFilename) { diff --git a/backend-java/src/main/java/com/nanri/aiimage/modules/similarasin/service/SimilarAsinTaskService.java b/backend-java/src/main/java/com/nanri/aiimage/modules/similarasin/service/SimilarAsinTaskService.java index ce7abb0c..3fc1c1cd 100644 --- a/backend-java/src/main/java/com/nanri/aiimage/modules/similarasin/service/SimilarAsinTaskService.java +++ b/backend-java/src/main/java/com/nanri/aiimage/modules/similarasin/service/SimilarAsinTaskService.java @@ -5544,8 +5544,8 @@ public class SimilarAsinTaskService { } try { // bucket 对 result/ 前缀已开放公开读,使用无签名公开 URL,避免签名 1 小时过期后下载 403。 - // resolveObjectKey 兼容历史存量的旧格式(带签名的完整 URL),统一还原为纯 objectKey 再拼公开 URL。 - return ossStorageService.getPublicUrl(ossStorageService.resolveObjectKey(resultFileUrl)); + // result/ 前缀走 download-endpoint 独立下载域名(带宽/缓存分流),非 result/(如图片)仍走公开端点。 + return ossStorageService.generateFreshDownloadUrl(resultFileUrl); } catch (Exception ex) { log.warn("[similar-asin] build public download url failed resultId={} err={}", row.getId(), ex.getMessage());