From 7ece553fd95f30dcfafa66f667ef9d0c064a22e6 Mon Sep 17 00:00:00 2001 From: xin <1099200748@qq.com> Date: Sat, 19 Jul 2025 16:27:12 +0800 Subject: [PATCH] Merge branch 'pxb' into xin --- oying-tools/src/main/java/com/oying/utils/ObsUtils.java | 23 +++++++++++++++++++---- 1 files changed, 19 insertions(+), 4 deletions(-) diff --git a/oying-tools/src/main/java/com/oying/utils/ObsUtils.java b/oying-tools/src/main/java/com/oying/utils/ObsUtils.java index 23c45fe..349c1d3 100644 --- a/oying-tools/src/main/java/com/oying/utils/ObsUtils.java +++ b/oying-tools/src/main/java/com/oying/utils/ObsUtils.java @@ -36,9 +36,9 @@ * @return PutObjectResult */ public static PutObjectResult putObject(ObsProperties properties, File file, String objectKey, AccessControlList acl) { + // 创建ObsClient实例 + ObsClient obsClient = getObsClient(properties); try { - // 创建ObsClient实例 - ObsClient obsClient = getObsClient(properties); PutObjectRequest request = new PutObjectRequest(); request.setBucketName(properties.getBucket()); request.setObjectKey(objectKey); @@ -51,6 +51,7 @@ throw new BadRequestException("上传对象失败" + e.getMessage()); } finally { FileUtil.del(file); + CloseUtil.close(obsClient); } } @@ -63,15 +64,16 @@ * @return PutObjectResult */ public static PutObjectResult putObject(ObsProperties properties, File file, String objectKey) { + // 创建ObsClient实例 + ObsClient obsClient = getObsClient(properties); try { - // 创建ObsClient实例 - ObsClient obsClient = getObsClient(properties); // 为待上传的本地文件路径,需要指定到具体的文件名 return obsClient.putObject(properties.getBucket(), objectKey, file); } catch (Exception e) { throw new BadRequestException("上传对象失败" + e.getMessage()); } finally { FileUtil.del(file); + CloseUtil.close(obsClient); } } @@ -107,6 +109,7 @@ } finally { CloseUtil.close(in); CloseUtil.close(out); + CloseUtil.close(obsClient); } } return path; @@ -123,5 +126,17 @@ ObsClient obsClient = getObsClient(properties); // 删除指定的对象 obsClient.deleteObject(properties.getBucket(), objectKey); + CloseUtil.close(obsClient); + } + + public static String getPublicObjectUrl(ObsProperties properties, String objectKey) { + return getPublicObjectUrl(properties.getBucket(), properties.getEndpoint(), objectKey); + } + + public static String getPublicObjectUrl(String bucketName, String endpoint, String objectKey) { + // 移除objectKey开头可能存在的文件分割符('/') + String cleanObjectKey = objectKey.startsWith("/") ? objectKey.substring(1) : objectKey; + // 标准URL格式 + return String.format("https://%s.%s/%s", bucketName, endpoint.replaceAll("^https?://", ""), cleanObjectKey); } } -- Gitblit v1.9.3