config/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
framework/src/main/java/cn/lili/cos/COSConfigProperty.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
framework/src/main/java/cn/lili/utils/COSUtil.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
config/application.yml
@@ -324,6 +324,7 @@ durationSeconds: 1800 # STS临时访问凭证有效期,单位秒,默认1800s,主账号最长2小时,子账号(ARM用户)36小时 bucket: lmk-1308069279 region: ap-chengdu endpoint: https://lmk-1308069279.cos.ap-chengdu.myqcloud.com # 访问域名 urlExpireMinute: 360 # 预签名url有效时间(分钟) actions: # sts的权限 - cos:ListMultipartUploads framework/src/main/java/cn/lili/cos/COSConfigProperty.java
@@ -30,6 +30,9 @@ /** bucket名称 */ private String bucket; /** 访问域名 */ private String endpoint; /** 预签名url过期时间(分钟) */ private Integer urlExpireMinute; @@ -102,4 +105,12 @@ public void setUrlExpireMinute(Integer urlExpireMinute) { this.urlExpireMinute = urlExpireMinute; } public String getEndpoint() { return endpoint; } public void setEndpoint(String endpoint) { this.endpoint = endpoint; } } framework/src/main/java/cn/lili/utils/COSUtil.java
@@ -224,21 +224,7 @@ * @return */ public String getPreviewUrl(String fileKey) { COSClient cosClient = this.initClient(); // 设置签名过期时间(可选), 若未进行设置则默认使用 ClientConfig 中的签名过期时间(1小时) // 这里设置签名在半个小时后过期 Date expirationDate = new Date(System.currentTimeMillis() + cosConfigProperty.getUrlExpireMinute() * 60 * 1000); // 填写本次请求的参数,需与实际请求相同,能够防止用户篡改此签名的 HTTP 请求的参数 Map<String, String> params = new HashMap<String, String>(); // 填写本次请求的头部,需与实际请求相同,能够防止用户篡改此签名的 HTTP 请求的头部 Map<String, String> headers = new HashMap<String, String>(); // 请求的 HTTP 方法,上传请求用 PUT,下载请求用 GET,删除请求用 DELETE HttpMethodName method = HttpMethodName.GET; URL url = cosClient.generatePresignedUrl(cosConfigProperty.getBucket(), fileKey, expirationDate, method, headers, params); System.out.println(url.toString()); // 确认本进程不再使用 cosClient 实例之后,关闭即可 cosClient.shutdown(); return url.toString(); return cosConfigProperty.getEndpoint() + "/" + fileKey; }