使用腾讯云COS对象存储详细流程
一、开通COS对象存储
二、创建存储桶
基本信息
- 所属地域:请选择与您业务(或用户数量)相对集中的物理区域所对应的 COS 地域,设置后不可修改。地域的更多信息请参见 地域和访问域名。
- 名称:请输入自定义的存储桶名称。设置后不可修改。命名说明请参见存储桶的 命名规范。
- 访问权限:存储桶默认提供三种访问权限:私有读写、公有读私有写和公有读写,设置后仍可修改。详细信息请参见 存储桶访问权限。
- 请求域名:自动生成。创建完存储桶后,您可以使用该域名对存储桶进行访问。
- 版本控制:开启后,上传的同名对象将保存历史版本。
- 日志存储:为您记录跟存储桶操作相关的各种请求日志。
- 存储桶标签:存储桶标签作为管理存储桶的一个标识,您可以为存储桶设置标签,便于分组管理存储桶,详情请参见 设置存储桶标签。
- 服务端加密:目前存储桶的加密方式支持 SSE-COS 加密(即由 COS 托管密钥的服务端加密)。关于服务端加密的介绍,请参见 服务端加密概述。
对存储桶的配置信息进行确认。如需修改,单击上一步即可。
三、获取秘钥
1.创建子账号
四、将COS整合到spring Boot项目中
1.导入依赖
-
<dependency>
-
<groupId>com.qcloud</groupId>
-
<artifactId>cos_api</artifactId>
-
<version>5.6.89</version>
-
</dependency>
2.导入配置信息可放入yml文件中,使用工具类读取(相对安全)
-
tencent:
-
cos:
-
#腾讯云对象存储参数
-
#腾讯云账户secretId,secretKey
-
secretId:
-
secretKey:
-
#存储桶名称
-
buckerName:
-
#地域
-
region: ap-shanghai
-
#请求域名(使用对应的存储桶和对应的地域)
-
url:
3.工具类
-
-
-
public class ConstantCosUtils implements InitializingBean {
-
-
"${tencent.cos.secretId}")(
-
public String secretId;
-
-
"${tencent.cos.secretKey}")(
-
public String secretKey;
-
-
"${tencent.cos.buckerName}")(
-
public String buckerName;
-
-
"${tencent.cos.region}")(
-
public String region;
-
-
"${tencent.cos.url}")(
-
public String url;
-
-
public static String SECRET_ID;
-
public static String SECRET_KEY;
-
public static String BUCKET_NAME;
-
public static String REGION;
-
public static String URL;
-
-
-
-
public void afterPropertiesSet() throws Exception {
-
SECRET_ID = secretId;
-
SECRET_KEY = secretKey;
-
BUCKET_NAME = buckerName;
-
REGION = region;
-
URL = url;
-
}
-
}
4.编写代码
controller
-
/**
-
* 上传商家logo
-
* @return
-
*/
-
@ApiOperation("上传商家logo")
-
@PostMapping("/upload")
-
public R upload(MultipartFile file) {
-
String url = settingReceiptCustomService.upload(file);
-
return R.ok(url);
-
}
serviceImpl
-
-
@Service
-
public class SettingReceiptCustomServiceImpl extends ServiceImpl<SettingReceiptCustomMapper, SettingReceiptCustom> implements SettingReceiptCustomService {
-
-
-
@Override
-
public String upload(MultipartFile file) {
-
COSClient cosClient = initCos();
-
try {
-
String filename = file.getOriginalFilename();
-
InputStream inputStream = file.getInputStream();
-
String filePath = getFilePath(filename);
-
// 上传文件
-
cosClient.putObject(new PutObjectRequest(ConstantCosUtils.BUCKET_NAME, filePath, inputStream, null));
-
cosClient.setBucketAcl(ConstantCosUtils.BUCKET_NAME, CannedAccessControlList.PublicRead);
-
-
return ConstantCosUtils.URL "/" filePath;
-
} catch (Exception e) {
-
e.printStackTrace();
-
} finally {
-
cosClient.shutdown();
-
}
-
return null;
-
}
-
-
private String getFilePath(String fileName){
-
String filePath = "logo/";
-
String fileType = fileName.substring(fileName.lastIndexOf("."));
-
filePath = IdUtils.randomUUID() fileType;
-
return filePath;
-
}
-
-
/**
-
* 初始化COSClient
-
* @return
-
*/
-
private COSClient initCos(){
-
// 1 初始化用户身份信息(secretId, secretKey)
-
BasicCOSCredentials credentials = new BasicCOSCredentials(ConstantCosUtils.SECRET_ID, ConstantCosUtils.SECRET_KEY);
-
// 2 设置 bucket 的区域, COS 地域的简称请参照
-
Region region = new Region(ConstantCosUtils.REGION);
-
ClientConfig clientConfig = new ClientConfig(region);
-
// 从 5.6.54 版本开始,默认使用了 https
-
// clientConfig.setHttpProtocol(HttpProtocol.https);
-
// 3 生成 cos 客户端。
-
return new COSClient(credentials, clientConfig);
-
}
-
}
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfhgabi
系列文章
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13