COS的配置及使用

COS的配置及使用

COS(Cloud Object Service) 对象存储服务。

高可用、高稳定、强安全的云端存储服务,可以将任意数量和形式的非结构化数据放入COS,并在其中实现数据管理和处理。

Maven依赖

<dependency>
  <groupId>com.qcloud</groupId>
  <artifactId>cos_api</artifactId>
  <version>5.6.24</version>
</dependency>

配置类

package com.sf.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.qcloud.cos.COSClient;
import com.qcloud.cos.ClientConfig;
import com.qcloud.cos.auth.BasicCOSCredentials;
import com.qcloud.cos.auth.COSCredentials;
import com.qcloud.cos.http.HttpProtocol;
import com.qcloud.cos.region.Region;

@Configuration
public class CosConfig {

    private String secretId;
    private String secretKey;
    private String regionName;

    @Bean(destroyMethod="shutdown")
    public COSClient cosClientInit() {
        COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);
        Region region = new Region(regionName);
        ClientConfig clientConfig = new ClientConfig(region);
        clientConfig.setHttpProtocol(HttpProtocol.http);
        return new COSClient(cred, clientConfig);
    }
}

使用方式(以图片二进制流为例)

@Autowired
private COSClient cosClient;

private String bucketName;

String key = fileName;//文件名,即文件的存储路径
InputStream inputStream = new ByteArrayInputStream(bytes);//bytes就是图片的具体二进制流
ObjectMetadata objectMetadata = new ObjectMetadata();
objectMetadata.setServerSideEncryption("AES256");
objectMetadata.setContentLength(bytes.length);
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, inputStream, objectMetadata);
// 上传腾讯cos存储
cosClient.putObject(putObjectRequest);
return bucketName + Constants.QUOTE3 + filePath;

直接使用http的方式对图片进行下载

String imgUrl = “imgUrl“;
String url = cosDomainProxy +  imgUrl;//图片的cos地址
String path = "path";//图片要下载到的地址
HttpRequest get = HttpUtil.createGet(url);
HttpResponse execute = get.execute();
if (!execute.isOk()) {
    log.error("download photo failed...");
}
FileUtil.writeBytes(execute.bodyBytes(),path);//execute.bodyBytes()得到的就是图片的二进制流
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值