fix: 七牛 SDK 7.15 API 兼容 - BucketManager.get(url) / bodyString()

This commit is contained in:
mediabot-pt
2026-06-29 23:03:27 +08:00
parent 41f3a15ddd
commit 3cece4e07f

View File

@@ -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();
};
}