diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/core/OssClient.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/core/OssClient.java
index ae877fcc1..93716c10a 100644
--- a/ruoyi-oss/src/main/java/com/ruoyi/oss/core/OssClient.java
+++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/core/OssClient.java
@@ -25,7 +25,6 @@ import com.ruoyi.oss.properties.OssProperties;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.net.URL;
-import java.util.Arrays;
import java.util.Date;
/**
@@ -84,9 +83,10 @@ public class OssClient {
return;
}
CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName);
- createBucketRequest.setCannedAcl(AccessPolicyType.PUBLIC.getAcl());
+ AccessPolicyType accessPolicy = getAccessPolicy();
+ createBucketRequest.setCannedAcl(accessPolicy.getAcl());
client.createBucket(createBucketRequest);
- client.setBucketPolicy(bucketName, getPolicy(bucketName, PolicyType.READ));
+ client.setBucketPolicy(bucketName, getPolicy(bucketName, accessPolicy.getPolicyType()));
} catch (Exception e) {
throw new OssException("创建Bucket失败, 请核对配置信息:[" + e.getMessage() + "]");
}
@@ -103,7 +103,7 @@ public class OssClient {
metadata.setContentLength(inputStream.available());
PutObjectRequest putObjectRequest = new PutObjectRequest(properties.getBucketName(), path, inputStream, metadata);
// 设置上传对象的 Acl 为公共读
- putObjectRequest.setCannedAcl(AccessPolicyType.PUBLIC.getAcl());
+ putObjectRequest.setCannedAcl(getAccessPolicy().getAcl());
client.putObject(putObjectRequest);
} catch (Exception e) {
throw new OssException("上传文件失败,请检查配置信息:[" + e.getMessage() + "]");
@@ -176,7 +176,7 @@ public class OssClient {
GeneratePresignedUrlRequest generatePresignedUrlRequest =
new GeneratePresignedUrlRequest(properties.getBucketName(), objectKey)
.withMethod(HttpMethod.GET)
- .withExpiration(new Date(System.currentTimeMillis() + 1000 * second));
+ .withExpiration(new Date(System.currentTimeMillis() + 1000L * second));
URL url = client.generatePresignedUrl(generatePresignedUrlRequest);
return url.toString();
}
@@ -187,9 +187,7 @@ public class OssClient {
* @return 当前桶权限类型code
*/
public AccessPolicyType getAccessPolicy() {
- return Arrays.stream(AccessPolicyType.values())
- .filter(n->StringUtils.equals(n.getType(),properties.getAccessPolicy()))
- .findFirst().get();
+ return AccessPolicyType.getByType(properties.getAccessPolicy());
}
private static String getPolicy(String bucketName, PolicyType policyType) {
diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/AccessPolicyType.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/AccessPolicyType.java
index 993f51c7a..1cae67094 100644
--- a/ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/AccessPolicyType.java
+++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/AccessPolicyType.java
@@ -16,17 +16,17 @@ public enum AccessPolicyType {
/**
* private
*/
- PRIVATE("0", CannedAccessControlList.Private),
+ PRIVATE("0", CannedAccessControlList.Private, PolicyType.WRITE),
/**
* public
*/
- PUBLIC("1", CannedAccessControlList.PublicRead),
+ PUBLIC("1", CannedAccessControlList.PublicRead, PolicyType.READ),
/**
- * constum
+ * custom
*/
- CONSTUM("2",CannedAccessControlList.PublicRead);
+ CUSTOM("2",CannedAccessControlList.PublicRead, PolicyType.READ);
/**
* 桶 权限类型
@@ -38,4 +38,18 @@ public enum AccessPolicyType {
*/
private final CannedAccessControlList acl;
+ /**
+ * 桶策略类型
+ */
+ private final PolicyType policyType;
+
+ public static AccessPolicyType getByType(String type) {
+ for (AccessPolicyType value : values()) {
+ if (value.getType().equals(type)) {
+ return value;
+ }
+ }
+ throw new RuntimeException("'type' not found By " + type);
+ }
+
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssServiceImpl.java
index 60f2de77a..f3bb1365b 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssServiceImpl.java
@@ -12,20 +12,13 @@ import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.BeanCopyUtils;
-import com.ruoyi.common.utils.JsonUtils;
import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.common.utils.file.FileUtils;
-import com.ruoyi.common.utils.redis.CacheUtils;
-import com.ruoyi.common.utils.redis.RedisUtils;
import com.ruoyi.common.utils.spring.SpringUtils;
-import com.ruoyi.oss.constant.OssConstant;
import com.ruoyi.oss.core.OssClient;
import com.ruoyi.oss.entity.UploadResult;
import com.ruoyi.oss.enumd.AccessPolicyType;
-import com.ruoyi.oss.exception.OssException;
import com.ruoyi.oss.factory.OssFactory;
-import com.ruoyi.oss.properties.OssProperties;
import com.ruoyi.system.domain.SysOss;
import com.ruoyi.system.domain.bo.SysOssBo;
import com.ruoyi.system.domain.vo.SysOssVo;
@@ -163,11 +156,9 @@ public class SysOssServiceImpl implements ISysOssService {
*/
private SysOssVo matchingUrl(SysOssVo oss) {
OssClient storage = OssFactory.instance(oss.getService());
- /**
- * 仅修改桶类型为 private 的URL,临时URL时长为100s
- */
+ // 仅修改桶类型为 private 的URL,临时URL时长为120s
if (AccessPolicyType.PRIVATE == storage.getAccessPolicy()) {
- oss.setUrl(storage.getPrivateUrl(oss.getFileName(), 100));
+ oss.setUrl(storage.getPrivateUrl(oss.getFileName(), 120));
}
return oss;
}
diff --git a/ruoyi-ui/src/views/system/oss/config.vue b/ruoyi-ui/src/views/system/oss/config.vue
index ce71ff609..51f991351 100644
--- a/ruoyi-ui/src/views/system/oss/config.vue
+++ b/ruoyi-ui/src/views/system/oss/config.vue
@@ -80,7 +80,7 @@
-
+
- private
- public
- custom
+ private
+ public
+ custom
@@ -216,21 +216,6 @@ export default {
isHttpsOptions: [],
// 状态(0正常 1停用)字典
statusOptions: [],
- // 桶权限类型
- accessPolicyOptions: [
- {
- label: 'private',
- value: 0
- },
- {
- label: 'public',
- value: 1
- },
- {
- label: 'custom',
- value: 2
- }
- ],
// 查询参数
queryParams: {
pageNum: 1,
@@ -412,11 +397,11 @@ export default {
},
accessPolicyStateFormat(row) {
if (row.accessPolicy === "0") {
- return private
+ return private
} else if (row.accessPolicy === "1") {
- return public
+ return public
} else if (row.accessPolicy === "2") {
- return constum
+ return custom
}
}