From ff40a2ab1e3dd296da98f16337c709f7fda71666 Mon Sep 17 00:00:00 2001
From: xin <1099200748@qq.com>
Date: Wed, 25 Jun 2025 00:38:43 +0800
Subject: [PATCH] 修改用户头像上传为OBS

---
 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