腾讯云中cos的yml配置文件

yml配置密钥、COS信息


cos:baseUrl: fxxxxxa-1xxxxx1.cos.ap-shanghai.myqcloud.comaccessKey: AKxxxxxxxxxxxxxxxxxxxxxxxxxCFsecretKey: oKxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxniregionName: ap-shanghaibucketName: fxxxxxa-1xxxxx1folderPrefix: /files

config的配置类

@Data
@Component
@ConfigurationProperties(prefix = "cos")
public class COSConfig {private String baseUrl;private String accessKey;private String secretKey;private String regionName;private String bucketName;private String folderPrefix;
}

COS文件上传工具类

/*** 腾讯云COS文件上传工具类*/
@Slf4j
public class COSClientUtil {/*** 获取配置信息*/private static COSConfig cosConfig = SpringBeanUtils.getBean(COSConfig.class);/*** 初始化用户身份信息*/private static COSCredentials cred = new BasicCOSCredentials(cosConfig.getAccessKey(), cosConfig.getSecretKey());/*** 设置bucket的区域*/private static ClientConfig clientConfig = new ClientConfig(new Region(cosConfig.getRegionName()));/*** 生成COS客户端*/private static COSClient cosClient = new COSClient(cred, clientConfig);/*** 上传文件** @param file* @return* @throws Exception*/public static String upload(MultipartFile file) throws Exception {String date = DateUtils.formateDate(new Date(), "yyyy-MM-dd");String originalFilename = file.getOriginalFilename();long nextId = IdGenerator.getFlowIdWorkerInstance().nextId();String name = nextId + originalFilename.substring(originalFilename.lastIndexOf("."));String folderName = cosConfig.getFolderPrefix() + "/" + date + "/";String key = folderName + name;File localFile = null;try {localFile = transferToFile(file);String filePath = uploadFileToCOS(localFile, key);log.info("upload COS successful: {}", filePath);return filePath;} catch (Exception e) {throw new Exception("文件上传失败");} finally {localFile.delete();}}/*** 上传文件到COS** @param localFile* @param key* @return*/private static String uploadFileToCOS(File localFile, String key) throws InterruptedException {PutObjectRequest putObjectRequest = new PutObjectRequest(cosConfig.getBucketName(), key, localFile);ExecutorService threadPool = Executors.newFixedThreadPool(8);// 传入一个threadPool, 若不传入线程池, 默认TransferManager中会生成一个单线程的线程池TransferManager transferManager = new TransferManager(cosClient, threadPool);// 返回一个异步结果Upload, 可同步的调用waitForUploadResult等待upload结束, 成功返回UploadResult, 失败抛出异常Upload upload = transferManager.upload(putObjectRequest);UploadResult uploadResult = upload.waitForUploadResult();transferManager.shutdownNow();cosClient.shutdown();String filePath = cosConfig.getBaseUrl() + uploadResult.getKey();return filePath;}/*** 用缓冲区来实现这个转换, 即创建临时文件* 使用 MultipartFile.transferTo()** @param multipartFile* @return*/private static File transferToFile(MultipartFile multipartFile) throws IOException {String originalFilename = multipartFile.getOriginalFilename();String prefix = originalFilename.split("\\.")[0];String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));File file = File.createTempFile(prefix, suffix);multipartFile.transferTo(file);return file;}}

Controller测试上传接口

 /*** 腾讯云COS上传** @param file* @return* @throws Exception*/@PostMapping(value = "/cosUpload")public ResponseEntity cosUpload(MultipartFile file) throws Exception {String filePath = COSClientUtil.upload(file);UploadDTO dto = UploadDTO.builder().filePath(filePath).build();return ResultVOUtil.success(dto);}

接下来就是用postman测试

腾讯云中cos的yml配置文件相关推荐

  1. 2021最新 腾讯云COS对象存储的简单使用

    叮当哥之前买了一年的腾讯云服务器,昨日偶然发现腾讯云送了叮当哥半年的cos对象存储服务器,于是就撸起袖子传了几张珍藏的高清大图上去,现将其上传的简单使用步骤总结一波(其它操作参加官方SDK文档API) ...

  2. 腾讯云COS对象存储的简单使用

    叮当哥之前买了一年的腾讯云服务器,昨日偶然发现腾讯云送了叮当哥半年的cos对象存储服务器,于是就撸起袖子传了几张珍藏的高清大图上去,现将其上传的简单使用步骤总结一波(其它操作参加官方SDK文档API) ...

  3. Hexo+腾讯云COS,为你的站点加速

    Hexo 托管在github上国内访问普遍很慢,难受的要死怎么办? 新方案 hexo + 腾讯云COS 申请腾讯云COS ,每个月有免费的10GB的CDN流量可以使用: 在腾讯云COS控制台中 创建一 ...

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

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

  5. 阿里云oss数据迁移到腾讯云cos 方法二(强烈推荐)

    迁移工具使用方法 迁移工具支持将S3, OSS, Qiniu,文件列表等文件迁移到COS对象存储.工具只支持在 linux/macos 下运行,系统自带的Python版本在2.6以上. 系统依赖 工具 ...

  6. 腾讯cos做文件服务器,将腾讯云COS对象存储挂载至腾讯云服务器实现大硬盘存储...

    老蒋在前面的文章中有介绍到腾讯云COS对象存储的用途还是比较大的,有我们常见的用来当做网盘使用,也可以将用来网站静态文件分离,同时还有可以作为数据同步备份.在这篇文章中,我还准备测试商家支持将COS挂 ...

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

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

  8. 微信小程序/网站 上传图片到腾讯云COS

    COS简介: 腾讯云提供的一种对象存储服务,供开发者存储海量文件的分布式存储服务.可以将自己开发的应用的存储部分全部接入COS的存储桶中,有效减少应用服务器的带宽消耗等.个人也可以通过腾讯云账号免费使 ...

  9. hexo静态网站部署到腾讯云cos

    hexo支持很多部署方案,最直接的就是部署在GitHub Pages服务上,国内gitee.coding等代码托管平台也都支持静态网站服务,而且免费. 但是GitHub在国内访问不太稳定,国内的代码托 ...

最新文章

  1. 软考-信息系统项目管理师-信息文档管理与配置管理
  2. ES6新特性之扩展运算符
  3. 过桥问题——图论解法
  4. js text 和 html,JS DOM innerText和textContent的区别
  5. SQL Server 文件规划 -位置规划
  6. iOS8上本地通知接收不到的问题
  7. 不够持久?大疆无人机有了新无线充电系统,电力增强+++
  8. R中Matrix and TMB package version issues
  9. 计算机九宫格游戏怎么玩,《九宫格数独》怎么玩 数独玩法介绍
  10. 【IDEA】IDEA怎么汉化汉化后怎么转回英文
  11. 我,30岁,部队服役5年,零基础转大数据
  12. java 扫描tcp端口号_Java 端口扫描器 TCP的实现方法
  13. C盘里的HTML是什么文件,C盘Windows下的winsxs是什么文件可以删除吗
  14. 关于ORACLE (AMERICAN_AMERICA.US7ASCII)字符集
  15. Elasticsearch[2.0] ☞ Java Client API ☞ Percolate API
  16. 实验十 基于Simulink的爬山法MPPT技术仿真
  17. 京东商城主图视频抓取的方法步骤
  18. makefile 初出茅庐-第1篇
  19. 企业上erp软件有价值?有哪些好用的功能?
  20. OPTEE学习笔记 - AArch64 RPC(二)

热门文章

  1. Ubuntu 20.04 下 部署 SoftEther
  2. HINSTANCE HANDLE HWND 的区别及一般方法
  3. Python数据可视化:绘制持仓榜单的“棒棒糖图”
  4. 机器人受虐视频真相_网传机器人被虐视频 网友惊呼行动灵活却有心生畏惧
  5. gel和react哪个厉害_lunarlon和react哪个好?
  6. Some App Tech Support
  7. Quarts 执行定时任务失败(.job.entity.ScheduleJobEntity cannot be cast to com.)
  8. vulkan validation layer 不支持问题
  9. 如何写出Android框架,结合android当前著名框架写的一个项目--学Android
  10. 【 OpenCV】——灰度直方图