OSS 结果文件下载分流:新增 aiimage.oss.download-endpoint 配置,result/ 前缀对象生成独立下载域名直链(默认未配置时回退原行为)
Build Backend JAR / build (push) Has been cancelled

This commit is contained in:
2026-08-26 13:37:11 +08:00
parent 7b238522ed
commit 18db20099a
4 changed files with 67 additions and 3 deletions
@@ -12,10 +12,11 @@ import static org.junit.jupiter.api.Assertions.assertNull;
class OssStorageServiceTest {
private OssStorageService storageService;
private OssProperties properties;
@BeforeEach
void setUp() {
OssProperties properties = new OssProperties();
properties = new OssProperties();
properties.setEndpoint("https://oss.aishufu.top");
properties.setPublicEndpoint("https://oss.aishufu.top");
properties.setBucket("nanri-ai-images");
@@ -93,4 +94,37 @@ class OssStorageServiceTest {
assertNull(storageService.normalizeManagedPublicUrl(null));
assertEquals(" ", storageService.normalizeManagedPublicUrl(" "));
}
@Test
void resultFilesUseDownloadEndpointWhenConfigured() {
properties().setDownloadEndpoint("https://download.aishufu.top");
assertEquals(
"https://download.aishufu.top/nanri-ai-images/result/similar_asin/1/%E9%87%8D%E6%96%B0-result.xlsx",
storageService.generateFreshDownloadUrl("result/similar_asin/1/重新-result.xlsx"));
assertEquals(
"https://download.aishufu.top/nanri-ai-images/result/similar_asin/1/re.xlsx",
storageService.generateFreshDownloadUrl("https://oss.aishufu.top/nanri-ai-images/result/similar_asin/1/re.xlsx"));
}
@Test
void nonResultAndUnmanagedValuesKeepPublicEndpoint() {
properties().setDownloadEndpoint("https://download.aishufu.top");
assertEquals(
"https://oss.aishufu.top/nanri-ai-images/supply_images/main.jpg",
storageService.generateFreshDownloadUrl("supply_images/main.jpg"));
assertEquals(
"https://download.aishufu.top/shufu-video/result/image_video/demo.mp4",
storageService.generateFreshDownloadUrl("shufu-video/result/image_video/demo.mp4"));
}
@Test
void downloadEndpointDisabledFallsBackToPublicEndpoint() {
assertEquals(
"https://oss.aishufu.top/nanri-ai-images/result/similar_asin/1/re.xlsx",
storageService.generateFreshDownloadUrl("result/similar_asin/1/re.xlsx"));
}
private OssProperties properties() {
return properties;
}
}