From a6ac90e29e513b80b7ad881da8e319338021ef8b Mon Sep 17 00:00:00 2001
From: xin <1099200748@qq.com>
Date: Thu, 25 Sep 2025 22:41:40 +0800
Subject: [PATCH] 生产环境配置
---
oying-tools/src/main/java/com/oying/utils/ObsUtils.java | 53 +++++++++++++++++++++++++++++++++--------------------
1 files changed, 33 insertions(+), 20 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..982f2d4 100644
--- a/oying-tools/src/main/java/com/oying/utils/ObsUtils.java
+++ b/oying-tools/src/main/java/com/oying/utils/ObsUtils.java
@@ -13,8 +13,6 @@
public class ObsUtils {
-
-
/**
* 创建ObsClient实例
*
@@ -29,16 +27,16 @@
/**
* 上传对象权限
*
- * @param properties obs配置
- * @param file 文件
- * @param objectKey 对象名
- * @param acl 对象权限
+ * @param properties obs配置
+ * @param file 文件
+ * @param objectKey 对象名
+ * @param acl 对象权限
* @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);
@@ -48,39 +46,41 @@
// 为待上传的本地文件路径,需要指定到具体的文件名
return obsClient.putObject(request);
} catch (Exception e) {
- throw new BadRequestException("上传对象失败" + e.getMessage());
+ throw new BadRequestException("上传对象失败:" + e.getMessage());
} finally {
FileUtil.del(file);
+ CloseUtil.close(obsClient);
}
}
/**
* 上传对象
*
- * @param properties obs配置
- * @param file 文件
- * @param objectKey 对象名
+ * @param properties obs配置
+ * @param file 文件
+ * @param objectKey 对象名
* @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());
+ throw new BadRequestException("上传对象失败:" + e.getMessage());
} finally {
FileUtil.del(file);
+ CloseUtil.close(obsClient);
}
}
/**
* 下载对象
*
- * @param properties obs配置
- * @param objectKey 对象名
- * @param path 保存路径
+ * @param properties obs配置
+ * @param objectKey 对象名
+ * @param path 保存路径
*/
public static String getObject(ObsProperties properties, String objectKey, String path) {
// 创建ObsClient实例
@@ -107,6 +107,7 @@
} finally {
CloseUtil.close(in);
CloseUtil.close(out);
+ CloseUtil.close(obsClient);
}
}
return path;
@@ -115,13 +116,25 @@
/**
* 删除对象
*
- * @param properties obs配置
- * @param objectKey 对象名
+ * @param properties obs配置
+ * @param objectKey 对象名
*/
public static void deleteObject(ObsProperties properties, String objectKey) {
// 创建ObsClient实例
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