From f58621ede5b860b98bb2085ed4c495e40087c9d7 Mon Sep 17 00:00:00 2001 From: mediabot-pt <295750538+mediabot-pt@users.noreply.github.com> Date: Tue, 30 Jun 2026 17:42:15 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20Qiniu=20=E4=B8=8B=E8=BD=BD=E5=9F=9F?= =?UTF-8?q?=E5=90=8D=E6=94=B9=E5=9B=9E=20QINIU=5FDOWNLOAD=5FDOMAIN=20?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../par/core/storage/QiniuStorageService.java | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/par-core/src/main/java/com/par/core/storage/QiniuStorageService.java b/par-core/src/main/java/com/par/core/storage/QiniuStorageService.java index 7488925..1ec36c3 100644 --- a/par-core/src/main/java/com/par/core/storage/QiniuStorageService.java +++ b/par-core/src/main/java/com/par/core/storage/QiniuStorageService.java @@ -24,7 +24,7 @@ public class QiniuStorageService implements StorageService { private Client qiniuClient; private Auth auth; private String bucket; - private String ioHost; + private String downloadDomain; private synchronized void ensureInit() { if (bucket != null) return; @@ -32,6 +32,7 @@ public class QiniuStorageService implements StorageService { String sk = env("QINIU_SK"); String regionStr = env("QINIU_REGION", "z2"); this.bucket = env("QINIU_BUCKET", "par-configs"); + this.downloadDomain = env("QINIU_DOWNLOAD_DOMAIN"); this.auth = Auth.create(ak, sk); Region region = switch (regionStr) { case "z0" -> Region.region0(); @@ -42,18 +43,10 @@ public class QiniuStorageService implements StorageService { default -> Region.autoRegion(); }; Configuration cfg = new Configuration(region); - this.ioHost = switch (regionStr) { - case "z0" -> "iovip-z0.qiniuio.com"; - case "z1" -> "iovip-z1.qiniuio.com"; - case "z2" -> "iovip-z2.qiniuio.com"; - case "na0" -> "iovip-na0.qiniuio.com"; - case "as0" -> "iovip-as0.qiniuio.com"; - default -> "iovip-z2.qiniuio.com"; - }; this.uploadManager = new UploadManager(cfg); this.bucketManager = new BucketManager(auth, cfg); this.qiniuClient = new Client(cfg); - log.info("Qiniu 存储就绪: bucket={}, ioHost={}", bucket, ioHost); + log.info("Qiniu 存储就绪: bucket={}, downloadDomain={}", bucket, downloadDomain); } @Override @@ -71,13 +64,17 @@ public class QiniuStorageService implements StorageService { @Override public String read(String path) { ensureInit(); - // 通过 SDK Client + 区域 ioHost 私密下载 - String baseUrl = "http://" + ioHost + "/" + path; + // 通过 SDK Client + downloadDomain 私密下载 + if (downloadDomain == null) { + log.warn("Qiniu 读取失败: QINIU_DOWNLOAD_DOMAIN 未配置"); + return null; + } + String baseUrl = downloadDomain + "/" + path; String signedUrl = auth.privateDownloadUrl(baseUrl, 3600); try { Response resp = qiniuClient.get(signedUrl); if (resp.isOK()) return resp.bodyString(); - log.warn("Qiniu 读取失败 {}: HTTP {}", path, resp.statusCode); + log.warn("Qiniu 读取失败 {}: HTTP {} (domain={})", path, resp.statusCode, downloadDomain); } catch (QiniuException e) { log.warn("Qiniu 读取失败 {}: {}", path, e.response != null ? e.response.error : e.getMessage()); }