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 e28b4e7..65339f1 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 @@ -43,8 +43,8 @@ public class QiniuStorageService implements StorageService { @Override public void store(String path, String content) { try { - var resp = uploadManager.put(content.getBytes(), path, auth.uploadToken(bucket)); - log.debug("Qiniu 上传: {} (hash={})", path, resp.hash); + uploadManager.put(content.getBytes(), path, auth.uploadToken(bucket)); + log.debug("Qiniu 上传: {}", path); } catch (QiniuException e) { log.error("Qiniu 上传失败 {}: {}", path, e.response != null ? e.response.error : e.getMessage()); throw new RuntimeException("Qiniu upload failed: " + path, e); @@ -54,9 +54,11 @@ public class QiniuStorageService implements StorageService { @Override public String read(String path) { try { - var resp = bucketManager.get(bucket, path, null, null); - if (resp != null && resp.body() != null) { - return new String(resp.body()); + // 构造公开下载 URL + String url = "http://" + bucket + ".qiniucdn.com/" + path; + var resp = bucketManager.get(url); + if (resp != null && resp.statusCode == 200) { + try { return resp.bodyString(); } catch (Exception e) { return new String(resp.body()); } } } catch (QiniuException e) { log.warn("Qiniu 读取失败 {}: {}", path, e.response != null ? e.response.error : e.getMessage()); @@ -67,8 +69,7 @@ public class QiniuStorageService implements StorageService { @Override public boolean exists(String path) { try { - var stat = bucketManager.stat(bucket, path); - return stat != null; + return bucketManager.stat(bucket, path) != null; } catch (QiniuException e) { return false; } @@ -76,11 +77,11 @@ public class QiniuStorageService implements StorageService { private Region getRegion(String region) { return switch (region) { - case "z0" -> Region.region0(); // 华东 - case "z1" -> Region.region1(); // 华北 - case "z2" -> Region.region2(); // 华南 - case "na0" -> Region.regionNa0(); // 北美 - case "as0" -> Region.regionAs0(); // 东南亚 + case "z0" -> Region.region0(); + case "z1" -> Region.region1(); + case "z2" -> Region.region2(); + case "na0" -> Region.regionNa0(); + case "as0" -> Region.regionAs0(); default -> Region.autoRegion(); }; }