原以为对象存储很难 毕竟之前我用了下 发现完全不会

今天静下心来研究了下 发现其实挺简单的

直接搜索

点击这个




这个秘钥很重要 需要保存好

点击配置


加上这三个 一共是五个数据 我们都是要用到的

导入依赖

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

配置文件

#API密钥secretId
spring.qcloud.secretId=
#API密钥secretKey
spring.qcloud.secretKey=
#存储桶所属地域
spring.qcloud.region=ap-nanjing
#存储桶空间名称
spring.qcloud.bucketName=
#存储桶访问域名
spring.qcloud.url=
#上传文件前缀路径(eg:/images/)
spring.qcloud.prefix=/images/

若是这样配置 就会在相应了目录下 生成这样的文件夹

上传文件的工具类

/*** 腾讯云对象存储工具类*/
public class QCloudCosUtils {//API密钥secretIdprivate String secretId;//API密钥secretKeyprivate String secretKey;//存储桶所属地域private String region;//存储桶空间名称private String bucketName;//存储桶访问域名private String url;//上传文件前缀路径(eg:/images/)private String prefix;public String getSecretId() {return secretId;}public void setSecretId(String secretId) {this.secretId = secretId;}public String getSecretKey() {return secretKey;}public void setSecretKey(String secretKey) {this.secretKey = secretKey;}public String getRegion() {return region;}public void setRegion(String region) {this.region = region;}public String getBucketName() {return bucketName;}public void setBucketName(String bucketName) {this.bucketName = bucketName;}public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public String getPrefix() {return prefix;}public void setPrefix(String prefix) {this.prefix = prefix;}/*** 上传File类型的文件* @param file* @return 上传文件在存储桶的链接*/public  String upload(File file) {//生成唯一文件名String newFileName = generateUniqueName(file.getName());//文件在存储桶中的keyString key = prefix+newFileName;//声明客户端COSClient cosClient=null;try {//初始化用户身份信息(secretId,secretKey)COSCredentials cosCredentials = new BasicCOSCredentials(secretId, secretKey);//设置bucket的区域ClientConfig clientConfig = new ClientConfig(new Region(region));//生成cos客户端cosClient = new COSClient(cosCredentials, clientConfig);//创建存储对象的请求PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, file);//执行上传并返回结果信息PutObjectResult putObjectResult = cosClient.putObject(putObjectRequest);return url+key;} catch (CosClientException e) {e.printStackTrace();} finally {cosClient.shutdown();}return null;}/*** upload()重载方法* @param multipartFile* @return 上传文件在存储桶的链接*/public String upload(MultipartFile multipartFile) {System.out.println(multipartFile);//生成唯一文件名String newFileName = generateUniqueName(multipartFile.getOriginalFilename());//文件在存储桶中的keyString key = prefix+newFileName;//声明客户端COSClient cosClient = null;//准备将MultipartFile类型转为File类型File file = null;try {//生成临时文件file = File.createTempFile("temp",null);//将MultipartFile类型转为File类型multipartFile.transferTo(file);//初始化用户身份信息(secretId,secretKey)COSCredentials cosCredentials = new BasicCOSCredentials(secretId, secretKey);//设置bucket的区域ClientConfig clientConfig = new ClientConfig(new Region(region));//生成cos客户端cosClient = new COSClient(cosCredentials, clientConfig);//创建存储对象的请求PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, file);//执行上传并返回结果信息PutObjectResult putObjectResult = cosClient.putObject(putObjectRequest);return url+key;} catch (IOException e) {e.printStackTrace();} finally {cosClient.shutdown();}return null;}/*** 根据UUID生成唯一文件名* @param originalName* @return*/public String generateUniqueName(String originalName) {return UUID.randomUUID() + originalName.substring(originalName.lastIndexOf("."));}
}

配置注入

/*** 配置注入*/
@Configuration
public class QCloudCosUtilsConfig {@ConfigurationProperties(prefix = "spring.qcloud")@Beanpublic QCloudCosUtils qcloudCosUtils() {return new QCloudCosUtils();}
}

接口类

/***上唇文件接口*/
public interface FileUploadService {/*** 处理浏览器文件上传请求* @param multipartFile* @return*/String upload(MultipartFile multipartFile);/*** 处理普通文件上传* @param file* @return*/String upload(File file);
}

接口实现类

@Service
public class FileUploadServiceImpl implements FileUploadService {@Autowiredprivate QCloudCosUtils qCloudCosUtils;@Overridepublic String upload(MultipartFile multipartFile) {return qCloudCosUtils.upload(multipartFile);}@Overridepublic String upload(File file) {return qCloudCosUtils.upload(file);}
}

直接controller调用就好啦

如果需要回显 service会返回对应的图片路径 直接就能访问了

springboot使用腾讯云对象存储相关推荐

  1. 腾讯云对象存储 python_python 云存储

    广告关闭 云服务器1核2G首年99年,还有多款热门云产品满足您的上云需求 存储桶 bucketxml python sdk 存储桶名称由两部分组成:用户自定义字符串 和 appid,两者以中划线&qu ...

  2. 腾讯云对象存储 python_GitHub - fushall1104/cos-python3-sdk: 腾讯云对象存储服务(cos)Python3.5版本SDK...

    cos-python3-sdk 腾讯云对象存储服务(cos)Python3.5版本SDK *此版本非官方版本 项目进展:开发完成(分片上传待测试) 项目的来由:做基于Django个人网站时,采用了腾讯 ...

  3. 基于hadoop构建对象存储系统_Hadoop社区正式支持腾讯云对象存储COS

    8月4日消息,知名大数据开源社区Hadoop近日宣布对腾讯云对象存储COS的正式支持.后续,开发者在基于Hadoop架构进行大数据分析时,能够在不修改代码的情况下,无缝高效地使用腾讯云COS来处理海量 ...

  4. electron 使用json作为本地存储_使用腾讯云对象存储 COS 作为 Velero 后端存储,实现集群资源备份和还原...

    Velero(以前称为 Heptio Ark)是一个开源工具,可以安全地备份和还原,执行灾难恢复以及迁移 Kubernetes 集群资源和持久卷,可以在 TKE 集群或自建 Kubenetes 集群中 ...

  5. 腾讯云对象存储的完整教程,java将文件上传到腾讯云上后返回可以访问的连接

    先前使用的是七牛云,是挺好用的,但是七牛对于测试域名有一个月的时间限制.测试域名失效后上传的图片等文件就不能访问了.但是腾讯云每个注册的账户有50G的对象存储的空间.而且没有时间限制.所以就采用腾讯的 ...

  6. 微信小程序基于腾讯云对象存储的图片上传

    在使用腾讯云对象存储之前,公司一直使用的是传统的FTP的上传模式,而随着用户量的不断增加,FTP所暴露出来的问题也越来越多,1.传输效率低,上传速度慢.2.时常有上传其他文件来攻击服务器,安全上得不到 ...

  7. 腾讯云cos html,腾讯云对象存储(COS)插件安装设置图文教程

    腾讯云对象存储(COS)插件是腾讯云官方开发的针对在 wordpress中使用腾讯云对象存储cos的用户开发的辅助插件.通过在 wordpress程序中安装插件的方式,很方便的把WordPress静态 ...

  8. 腾讯云对象存储 COS 荣获对象存储领导力奖!!!

    本文转自"亚太CDN产业联盟"公众号 亚太内容分发大会暨 CDN 峰会一直致力于推动 CDN 产业深度融合发展和市场普及,现已成为亚太地区影响力最大的内容分发网络盛会.十年来,在以 ...

  9. 硅谷课堂 06_整合腾讯云对象存储和课程分类管理

    硅谷课堂第六天-整合腾讯云对象存储和课程分类管理 文章目录 硅谷课堂第六天-整合腾讯云对象存储和课程分类管理 一.讲师管理模块整合腾讯云对象存储 1.腾讯云对象存储介绍 1.1.开通"对象存 ...

最新文章

  1. npm install 提示权限不足 Error: EPERM: operation not permitted, unlink XXX
  2. CentOS中安装mysql
  3. Python--第1次平时作业
  4. 《需求工程——软件建模与分析》阅读笔记之二
  5. 通过CrawlSpider对招聘网站进行整站爬取(拉勾网实战)
  6. 阿里云自研数据仓库 AnalyticDB 再捧 TPC 全球冠军
  7. hdu 3930 Broot 二次剩余
  8. mysql查询前一年的第一天_MySQL中查询某一天, 某一月, 某一年的数据代码详解
  9. 正则表达式匹配第一个单个字符
  10. spss因子分析结果解读_因子分析巴特利特球形度检验结果解读
  11. 摄动法在计算机中的应用,渐近分析与摄动方法的计算机辅助求解.pdf
  12. pytorch加载模型指定GPU卡号报错或者指定失败
  13. 非科班、跨行业的如何走前端这条路?
  14. Qt 6.2的下载和安装
  15. 使用Spring Data MongoDB操作SequoiaDB巨杉数据库简易教程
  16. vsftpd通过cmds_allowed进行精确权限控制
  17. JZOJ 3518. 【NOIP2013模拟11.6A组】进化序列(evolve)
  18. 【LeetCode】跳跃游戏Ⅰ~Ⅵ(我真的跳晕了@_@)
  19. 爆款!如何利用知乎引上万流量,我是这样做的!|实战
  20. Taskade——Mac最全能的任务管理器

热门文章

  1. unity3d NGUI多场景共用界面制作
  2. Java正则表达式Pattern和Matcher类详解
  3. 【Linux网络编程(七)】集线器、交换机、路由器
  4. Cas乐观锁的初步理解
  5. 2014.03.04-2014.03.07调研比较流行的手机视频播放器UI
  6. python用动态规划求最短路径_动态规划之最短路径问题详解
  7. JavaWeb01(WEB环境的搭建)
  8. pythonopencv图像拼接缝隙_python+OpenCV实现图像拼接
  9. 钟汉良日记:自媒体写作要向古代拜师学艺的人取经
  10. POJ 1185 [NOI2001 D2T?] 炮兵阵地