腾讯云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(上传)相关推荐

  1. tp6整合腾讯云cos上传

    1.创建一个名为 composer.json的文件,内容如下: { "require": {"qcloud/cos-sdk-v5": ">=2. ...

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

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

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

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

  4. 腾讯云cos上传文件功能封装

    前言:要使用cos要先去腾讯云创建cos储存桶,创建完储存桶按步骤来就可以了. 安装依赖 npm i cos-js-sdk-v5 创建文件upload.js const COS = require(' ...

  5. 腾讯云COS上传下载文件

    1.初始化COSClient import com.qcloud.cos.COSClient; import com.qcloud.cos.ClientConfig; import com.qclou ...

  6. springboot整合腾讯云cos进行上传、下载、删除文件

    参考腾讯官方文档 pom <dependency><groupId>com.qcloud</groupId><artifactId>cos_api< ...

  7. 腾讯云cos上传及获取

    需求背景:在开发过程中遇到过需要用户上传文件及下载文件的需求,可文件上传到服务器又会对服务器造成越来越大的压力,这时就考虑把文件放到云上.(这里的云不是天上的云哈~~~) 前期准备:开通腾讯云账号并购 ...

  8. SpringBoot整合oss实现文件的上传,查看,删除,下载

    springboot整合oss实现文件的上传,查看,删除,下载 1.什么是对象存储 OSS? 答:阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量. ...

  9. 利用腾讯云进行上传文件

    1.导入依赖 <!-- 腾讯云文件上传--><dependency><groupId>com.qcloud</groupId><artifactI ...

最新文章

  1. mui 打开openWindow新页面不读取缓存的设置/mui中h5清除缓存页面的办法
  2. java顺序结构类型,Java类的完整构造执行顺序
  3. Ubuntu 上不了网
  4. 《梦断代码》读后感 - 驱动,责任,交流,远虑
  5. python安装成功之后教程_python安装教程 Pycharm安装详细教程
  6. 如何将YouTube视频插入PowerPoint演示文稿
  7. python seo 相关的库_11个并不被常用但对开发非常有帮助的Python库
  8. 华为云视频点播服务全面开放公测!限量发放VIP免费名额中...
  9. 对接微信公众号出现【invalid ip xxx.xxx.xxx.xxx 】
  10. 初中计算机考试青岛多少分及格,详解青岛中考等级制成绩分五等按百分比划分...
  11. 机器学习笔记 十五:随机森林(Random Forest)评估机器学习模型的特征重要性
  12. Linux中国微信,「Linux 中国」2018 微信文章排行榜 | Linux 中国
  13. LeetCode-1374-生成每种字符都是奇数个的字符串
  14. 关于“放假”、“休息” “调休” 的各种说法!
  15. Axure 元件跟随鼠标拖动-仿手机APP手指拖动
  16. 【已解决】Tomcat配置“X-Frame-Options头未设置”警告的过滤器(详细)
  17. break在c语言if中的作用,编程中break的用法是什么(2)
  18. Django-discount策略解耦实现
  19. Metronic 对话 chat
  20. 树莓派ssh远程访问

热门文章

  1. reflow repaint
  2. JSP指令标识【三大指令】
  3. 武汉大学计算机学院杜博,杜博(武汉大学计算机学院教授)_360百科
  4. 【bioinfo】酶切法片段化建库相比超声打断建库引入softclip使用FADE软件识别/去除
  5. 简单实现aside菜单栏折叠 vuex
  6. 小米手机终于迎来猛烈反弹,市场份额猛增六成,华为手机大幅衰退
  7. linux守护进程、SIGHUP与nohup详解
  8. 智利近海发生6.7级地震:暂无伤亡 不会引发海啸
  9. MIPI CSI RX接口简介
  10. 220817-3Dslicer配准学习记录