统一结果文件下载 URL 生成:历史记录/上传回包等漏网点改用 generateFreshDownloadUrl,result/ 前缀对象走 download 域名
Build Backend JAR / build (push) Has been cancelled

This commit is contained in:
2026-08-26 03:58:29 -04:00
parent 18db20099a
commit 75f23d4568
5 changed files with 10 additions and 10 deletions
@@ -1065,9 +1065,9 @@ public class BrandTaskService {
List<CompletableFuture<String>> 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<String> 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;
}
@@ -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());
@@ -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) {
@@ -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) {
@@ -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());