xiangpei
2025-06-02 1771aa17eb020c4ef22bc8addf83ed2ae97cdfac
cos bucket使用公有
3个文件已修改
28 ■■■■ 已修改文件
config/application.yml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/cos/COSConfigProperty.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/utils/COSUtil.java 16 ●●●●● 补丁 | 查看 | 原始文档 | 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;
    }