参考腾讯官方文档

pom

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

application.yml

tencent:cos:accessKey: 你的秘钥idsecretKey: 你的秘钥region: 你存储桶所在的区域bucket: 你的存储桶名称spring:servlet:multipart:enabled: truefile-size-threshold: 5MBmax-file-size: 20MB

代码

  1. TencentCosProperties
@Data //lombok
@Component
@ConfigurationProperties(prefix = "tencent.cos")
public class TencentCosProperties {private String accessKey;private String secretKey;private String region;private String bucket;
}
  1. CosController
@RestController
public class CosController {@Autowiredprivate TencentCosProperties tencentCosProperties;@PostMapping("/upload")public String upload(@RequestParam("file") MultipartFile file) {if (ObjectUtils.isEmpty(file)) {return "文件不能为空";}String filename = file.getOriginalFilename();String extension = filename.substring(filename.lastIndexOf("."));String newFileName = UUID.randomUUID().toString().replaceAll("-", "") + extension;//1.初始化客户端COSClient cosClient = createCosClient();//2.上传文件File localFile = null;String bucket = tencentCosProperties.getBucket();try {localFile = File.createTempFile("temp", null);file.transferTo(localFile);//指定文件上传到 COS 上的路径String key = "img/" + newFileName;PutObjectRequest putObjectRequest = new PutObjectRequest(bucket, key, localFile);PutObjectResult putObjectResult = cosClient.putObject(putObjectRequest);return "上传文件成功";} catch (IOException e) {return "上传文件失败";} finally {cosClient.shutdown();}}private COSClient createCosClient() {//1.1 初始化用户身份信息BasicCOSCredentials credentials = new BasicCOSCredentials(tencentCosProperties.getAccessKey(), tencentCosProperties.getSecretKey());//1.2 设置bucket的地域Region region = new Region(tencentCosProperties.getRegion());ClientConfig clientConfig = new ClientConfig(region);//1.3 生成cos客户端COSClient cosClient = new COSClient(credentials, clientConfig);return cosClient;}@PostMapping("/download")public String download(@RequestParam("fileName") String fileName) {TransferManager transferManager = createTransferManager();String bucket = tencentCosProperties.getBucket();String key = "img/" + fileName;//下载到工程目录下的imgs文件夹中File downloadFile = new File(System.getProperty("user.dir") + "/imgs/"+fileName);GetObjectRequest getObjectRequest = new GetObjectRequest(bucket, key);try {//返回一个异步结果 Donload, 可同步的调用 waitForCompletion 等待下载结束, 成功返回 void, 失败抛出异常Download download = transferManager.download(getObjectRequest, downloadFile);download.waitForCompletion();return "下载文件成功";} catch (InterruptedException e) {return "下载文件失败";} finally {shutdownTransferManager(transferManager);}}@DeleteMapping("/delete")public String delete(@RequestParam("fileName") String fileName){COSClient cosClient = createCosClient();String bucket = tencentCosProperties.getBucket();String key = "img/" + fileName;try {cosClient.deleteObject(bucket,key);return "删除文件成功";} catch (CosClientException e) {return "删除文件失败";} finally {cosClient.shutdown();}}private void shutdownTransferManager(TransferManager transferManager) {// 指定参数为 true, 则同时会关闭 transferManager 内部的 COSClient 实例。// 指定参数为 false, 则不会关闭 transferManager 内部的 COSClient 实例。transferManager.shutdownNow(true);}private TransferManager createTransferManager() {//初始化客户端COSClient cosClient = createCosClient();//创建线程池ExecutorService threadPool = Executors.newFixedThreadPool(32);//创建 TransferManagerreturn new TransferManager(cosClient, threadPool);}}

springboot整合腾讯云cos进行上传、下载、删除文件相关推荐

  1. SpringBoot整合腾讯云COS(上传)

    腾讯云COS文档:对象存储 快速入门-SDK 文档-文档中心-腾讯云 (tencent.com) 开通腾讯云COS 创建存储桶 请求域名可做拼接文件访问URL使用 然后下一步即可 上传文件时需要以上红 ...

  2. springboot整合腾讯云cos对象储存

    一:腾讯云前期准备 直接在腾讯云中搜索"对象存储",立即使用 点击存储桶列表,创建存储桶 填写基本信息:所属地域,名称,访问权限(公有读写) 下一步,下一步,创建,存储桶创建成功 ...

  3. Java springboot项目引入腾讯云COS实现上传

    Java springboot项目引入腾讯云COS实现上传 pom.xml 配置类CosConfig.java 上传工具类CosClientUtil.java pom.xml <!--腾讯云上传 ...

  4. SpringBoot整合腾讯云COS对象存储实现文件上传

    企业级项目开发中都会有文件.图片.视频等文件上传并能够访问的场景,对于初学者Demo可能会直接存储在应用服务器上:对于传统项目可能会单独搭建FastDFS.MinIO等文件服务来实现存储,这种方案可能 ...

  5. 腾讯云轻量应用服务器器使用技巧-腾讯云OrcaTerm的上传下载

    前言: 上传下载是WebShell中不可或缺的功能之一,也是我在日常管理过程中经常使用操作.这里就跟着博主的视角来揭秘,腾讯云OrcaTerm的上传与下载. 对比 博主对比了一些shell的应用,这里 ...

  6. vue+node.js操作阿里云OSS,上传和删除文件

    效果图 一.上传文件 二.删除文件 第一步,引入依赖 npm install ali-oss --save 第二步,写OSS配置文件(server/oss.js) 这里需要在阿里云开通子账号,赋予相应 ...

  7. minio对象存储单机部署并设置开机自启动及集成spring boot进行(创建删除桶)(上传下载删除文件)

    目录 1.minio简介 2.minio特性 3.下载及部署 4.配置开机自启动 5.集成Springboot 1.minio简介 MinIO 是在GNU Affero 通用公共许可证 v3.0下发布 ...

  8. C# 文件操作(上传 下载 删除 文件列表...)

    using System.IO;      1.文件上传   ----------   如下要点:   HTML部分:   <form id="form1" runat=&q ...

  9. php清除账号登录,php实现账号登录/上传/下载/删除文件

    环境:Ubuntu16.04 搭建apache+mysql+php 1.安装apache sudo apt-get update sudo apt-get install apache2 安装完后输入 ...

最新文章

  1. Linux进程间通信(二):信号集函数 sigemptyset()、sigprocmask()、sigpending()、sigsuspend()...
  2. Linux脚本:xjps查看各个节点java进程
  3. VS2010下使用dmp文件和pdb文件定位到dll中崩溃位置的方法
  4. Spark 性能调优-内存设置-GC设置
  5. ASP.NET Core分布式项目实战(oauth2 + oidc 实现 server部分)--学习笔记
  6. split函数python 未定义_python split函数基本用法
  7. php 图片印章_php工具型代码之印章抠图
  8. OLE-只读性质的EXCEL
  9. php和python-php与python谁更适合web开发?为什么?
  10. [svc]Linux中Swap与Memory内存简单介绍
  11. 充气泵方案设计-汽车打气泵PCBA
  12. c语言程序分数化简,【C/C++】分数化简
  13. 阿里云服务器 ECS 数据盘与系统盘是什么?
  14. Firefox同步密钥丢失的解决办法
  15. PR软件——音频变音(机器音)
  16. Lte/5G中的RSRP、RSRQ、SINR、MCS介绍
  17. 聊聊短信接口攻击的防范方案
  18. 如何通过ua区分QQ内置浏览器与QQ浏览器
  19. Kafka从入门到精通学习笔记
  20. 一、(4) 结巴分词词性提取

热门文章

  1. 高速串口通信稳定_长虹配套珠峰5G通信装备 保障直播信号稳定高速传输
  2. 字符串处理总结 字符串和整数的转化
  3. 剑灵最新服务器2017,剑灵南天国速递 1.10西洛版本南天国更新重点简介
  4. 工业机器人柔性自动化生产线实训系统
  5. 抖音视频拼接怎么做?推荐一款高效实用的软件
  6. oracle修改卡顿,记一次生产环境卡顿优化过程:大事务并发回滚
  7. 支持苹果20WPD快充协议芯片JD6606S
  8. 学习型红外遥控器设计(4) 红外遥控编码还原
  9. 淘客基地拾牛安卓APP更新至1.4版本
  10. 除了计算机学位,这五件事情更重要