东东
发布于 2025-02-17 / 1 阅读 / 0 评论 / 0 点赞

对接腾讯云对象存储

初始化客户端

初始化一个COS的客户端

引入依赖

<!-- 腾讯云 cos 服务 -->  
<dependency>  
    <groupId>com.qcloud</groupId>  
    <artifactId>cos_api</artifactId>  
    <version>5.6.227</version>  
</dependency>

配置文件

见config包中 CosClientConfig.java文件

@Configuration  
@ConfigurationProperties(prefix = "cos.client")  
@Data  
public class CosClientConfig {  
  
    /**  
     * 域名  
     */  
    private String host;  
  
    /**  
     * secretId  
     */  
    private String secretId;  
  
    /**  
     * 密钥(注意不要泄露)  
     */  
    private String secretKey;  
  
    /**  
     * 区域  
     */  
    private String region;  
  
    /**  
     * 桶名  
     */  
    private String bucket;  
  
    @Bean  
    public COSClient cosClient() {  
        // 初始化用户身份信息(secretId, secretKey)  
        COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);  
        // 设置bucket的区域, COS地域的简称请参照 https://www.qcloud.com/document/product/436/6224  
        ClientConfig clientConfig = new ClientConfig(new Region(region));  
        // 生成cos客户端  
        return new COSClient(cred, clientConfig);  
    }  
}

写配置文件

为了避免密码泄露,最好新建一个application-local.yml文件,并忽略提交

# 对象存储配置(需要从腾讯云获取)

通用能力类

见manager包中 CosManager.java文件

测试文件上传

见FileController

修改配置启动

spring:  
  profiles:  
    active: local

文件下载

1、下载cos文件到后端服务器
2、获取到文件下载输入流
3、直接通过URL路径访问

如何将对象存储的文件下载到服务器中

见cosmanager.java 中 getobject方法

核心流程是根据路径获取到 COS 文件对象,然后将文件对象转换为文件流,
并写入到 Servlet 的 Response 对象中。注意要设置文件下载专属的响应头

public COSObject getObject(String key) {
        GetObjectRequest getObjectRequest =
                new GetObjectRequest(cosClientConfig.getBucket(), key);
        return cosClient.getObject(getObjectRequest);
    }