SpringBoot整合腾讯云COS(上传)
腾讯云COS文档:对象存储 快速入门-SDK 文档-文档中心-腾讯云 (tencent.com)
开通腾讯云COS
创建存储桶
请求域名可做拼接文件访问URL使用
然后下一步即可
上传文件时需要以上红框参数
导入依赖
<dependency><groupId>com.qcloud</groupId><artifactId>cos_api</artifactId><version>5.6.89</version>
</dependency>
配置文件yml
tencent:cos:file:keyId: keyIdkeySecret: keySecretbucketName: ed-1302656006regionId: ap-guangzhoucosHost: https://{请求域名} #例:https://ed-1302656006.cos.ap-guangzhou.myqcloud.com
配置类
@Component
@ConfigurationProperties(prefix = "tencent.cos.file")
@Data
public class CosConfig {private String keyId;private String keySecret;private String bucketName;private String regionId;private String cosHost;
}
Controller
实际需分层(service/impl),这里仅为记录
@PutMapping()
public String uploadCosFile(@RequestPart("file") MultipartFile multipartFile) {COSClient cosClient = initCosClient();// spring直接使用File接收文件传参,会有问题(No primary or single unique constructor found for class java.io.File)不知道具体原因,之后再看。// 腾讯云上传方法参数需要File,做一个转换操作File file = MultipartFileToFile(multipartFile);PutObjectRequest putObjectRequest = new PutObjectRequest(cosConfig.getBucketName(), key, file);//对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/images/picture.jpg 中,对象键(key)为 images/picture.jpg//如果images文件夹不存在则创建cosClient.putObject(putObjectRequest);client.shutdown(); // 关闭cos客户端//ResponseParam为自定义返回json格式return cosConfig.getCosHost() + "/" + key;
}
/**
* 获取腾讯云COS客户端
* @return COSClient
*/
private COSClient initCosClient() {COSCredentials cred = new BasicCOSCredentials(cosConfig.getKeyId(), cosConfig.getKeySecret());Region region = new Region(cosConfig.getRegionId());ClientConfig clientConfig = new ClientConfig(region);clientConfig.setHttpProtocol(HttpProtocol.https);return new COSClient(cred, clientConfig);
}
/**
* 接口只能接受MultipartFile, 腾讯云需要File
* 故 MultipartFile => File
* @param multiFile 上传文件
* @return file
*/
public static File MultipartFileToFile(MultipartFile multiFile) {// 获取文件名String fileName = multiFile.getOriginalFilename();// 获取文件后缀String suffix = fileName.substring(fileName.lastIndexOf("."));try {// 防止生成的临时文件重复,文件名随机码, UUIDFile file = File.createTempFile(UUID.randomUUID().toString().replaceAll("-", ""), suffix);multiFile.transferTo(file);return file;} catch (Exception e) {e.printStackTrace();throw new 自定义异常(code, "MultipartFileToFile 文件转换异常");}
}
测试
可通过该URL访问图片
SpringBoot整合腾讯云COS(上传)相关推荐
- tp6整合腾讯云cos上传
1.创建一个名为 composer.json的文件,内容如下: { "require": {"qcloud/cos-sdk-v5": ">=2. ...
- SpringBoot整合腾讯云COS对象存储实现文件上传
企业级项目开发中都会有文件.图片.视频等文件上传并能够访问的场景,对于初学者Demo可能会直接存储在应用服务器上:对于传统项目可能会单独搭建FastDFS.MinIO等文件服务来实现存储,这种方案可能 ...
- springboot整合腾讯云cos对象储存
一:腾讯云前期准备 直接在腾讯云中搜索"对象存储",立即使用 点击存储桶列表,创建存储桶 填写基本信息:所属地域,名称,访问权限(公有读写) 下一步,下一步,创建,存储桶创建成功 ...
- 腾讯云cos上传文件功能封装
前言:要使用cos要先去腾讯云创建cos储存桶,创建完储存桶按步骤来就可以了. 安装依赖 npm i cos-js-sdk-v5 创建文件upload.js const COS = require(' ...
- 腾讯云COS上传下载文件
1.初始化COSClient import com.qcloud.cos.COSClient; import com.qcloud.cos.ClientConfig; import com.qclou ...
- springboot整合腾讯云cos进行上传、下载、删除文件
参考腾讯官方文档 pom <dependency><groupId>com.qcloud</groupId><artifactId>cos_api< ...
- 腾讯云cos上传及获取
需求背景:在开发过程中遇到过需要用户上传文件及下载文件的需求,可文件上传到服务器又会对服务器造成越来越大的压力,这时就考虑把文件放到云上.(这里的云不是天上的云哈~~~) 前期准备:开通腾讯云账号并购 ...
- SpringBoot整合oss实现文件的上传,查看,删除,下载
springboot整合oss实现文件的上传,查看,删除,下载 1.什么是对象存储 OSS? 答:阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量. ...
- 利用腾讯云进行上传文件
1.导入依赖 <!-- 腾讯云文件上传--><dependency><groupId>com.qcloud</groupId><artifactI ...
最新文章
- mui 打开openWindow新页面不读取缓存的设置/mui中h5清除缓存页面的办法
- java顺序结构类型,Java类的完整构造执行顺序
- Ubuntu 上不了网
- 《梦断代码》读后感 - 驱动,责任,交流,远虑
- python安装成功之后教程_python安装教程 Pycharm安装详细教程
- 如何将YouTube视频插入PowerPoint演示文稿
- python seo 相关的库_11个并不被常用但对开发非常有帮助的Python库
- 华为云视频点播服务全面开放公测!限量发放VIP免费名额中...
- 对接微信公众号出现【invalid ip xxx.xxx.xxx.xxx 】
- 初中计算机考试青岛多少分及格,详解青岛中考等级制成绩分五等按百分比划分...
- 机器学习笔记 十五:随机森林(Random Forest)评估机器学习模型的特征重要性
- Linux中国微信,「Linux 中国」2018 微信文章排行榜 | Linux 中国
- LeetCode-1374-生成每种字符都是奇数个的字符串
- 关于“放假”、“休息” “调休” 的各种说法!
- Axure 元件跟随鼠标拖动-仿手机APP手指拖动
- 【已解决】Tomcat配置“X-Frame-Options头未设置”警告的过滤器(详细)
- break在c语言if中的作用,编程中break的用法是什么(2)
- Django-discount策略解耦实现
- Metronic 对话 chat
- 树莓派ssh远程访问