腾讯云对象存储cos使用

  • 一、新建密钥
    • 1、登录腾讯云进入控制台
    • 2、新建密钥
  • 二、创建对象存储
    • 1.进入对象存储,并创建存储桶
  • 三、创建项目
    • pom文件
    • yml文件
    • 创建一util层
    • controller层
    • 页面显示
  • 四、测试
    • 1、上传下载
    • 2、删除文件
    • 3、查询存储桶,创建存储桶
    • 4、查询存储桶中内容

一、新建密钥

腾讯云存储桶的javaSdk的API参考文档地址:链接: 官方文档.

1、登录腾讯云进入控制台

2、新建密钥

二、创建对象存储

1.进入对象存储,并创建存储桶


三、创建项目

pom文件

 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2.1.0.RELEASE</version></dependency><!--腾讯云cos依赖包--><dependency><groupId>com.qcloud</groupId><artifactId>cos_api</artifactId><version>5.6.28</version></dependency></dependencies>

yml文件

server:port: 8000spring:application:name: costestcloud:nacos:discovery:server-addr: 127.0.0.1:8848

创建一util层

public class CosTestUtil {// 1 初始化用户身份信息(secretId, secretKey)*这里是第一步新建密钥的public static COSCredentials cred =new BasicCOSCredentials("secretId", "secretKey");// 2 设置bucket的区域, COS地域的简称请参照 https://www.qcloud.com/document/product/436/6224public static ClientConfig clientConfig = new ClientConfig(new Region("创建时选择的COS地域"));// 3 生成cos客户端public static COSClient cosClient = new COSClient(cred,clientConfig);// bucket名需包含appidpublic static String bucketName = "存储桶名称";/*** 上传文件*/public static void upFile(InputStream inputStream,String key){//指定要上传到的存储桶ObjectMetadata Metadata = new ObjectMetadata();PutObjectRequest request = new PutObjectRequest(bucketName, key, inputStream, Metadata);cosClient.putObject(request);}/*** 下载文件*/public static void downFile(){// 指定对象在 COS 上的对象键String key = "";//存储桶下文件名//指定要下载到的本地路径File downFile = new File("D:/test/"+key);GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, key);cosClient.getObject(getObjectRequest,downFile);}/*** 删除文件*/public static void delFile(){String key="";//存储桶下文件名cosClient.deleteObject(bucketName,key);}/*** 改存储桶已经在前端界面进行创建 创建存储桶测试成功*/public static void createCosBucket() {String bucket = "examplebucket-1305834615";CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucket);// 设置 bucket 的权限为 PublicRead(公有读私有写), 其他可选有私有读写, 公有读写createBucketRequest.setCannedAcl(CannedAccessControlList.PublicRead);cosClient.createBucket(createBucketRequest);}/*** 查询存储桶列表 已经测试、成功** @return*/public static List<Bucket> queryBucketList() {List<Bucket> buckets = null;try {buckets = cosClient.listBuckets();System.out.println(buckets);} catch (CosServiceException serverException) {serverException.printStackTrace();} catch (CosClientException clientException) {clientException.printStackTrace();}return buckets;}/*** 查询存储桶中内容(需要改1处位置)* @param*/public static ObjectListing getContent() {ObjectListing objectListing = null;try {//            桶容器的名称(需要改1)String bucket = bucketName;ListObjectsRequest listObjectsRequest = new ListObjectsRequest();// 设置 bucket 名称listObjectsRequest.setBucketName(bucket);// prefix 表示列出的 object 的 key 以 prefix 开始listObjectsRequest.setPrefix("");// 设置最大遍历出多少个对象, 一次 listobject 最大支持1000listObjectsRequest.setMaxKeys(1000);listObjectsRequest.setDelimiter("/");objectListing =cosClient.listObjects(listObjectsRequest);/** for (COSObjectSummary cosObjectSummary : objectListing.getObjectSummaries())* { // 对象的路径 key String key = cosObjectSummary.getKey(); // 对象的 etag String* etag = cosObjectSummary.getETag(); // 对象的长度 long fileSize =* cosObjectSummary.getSize(); // 对象的存储类型 String storageClass =* cosObjectSummary.getStorageClass(); System.out.println("key:" + key +* "; etag:" + etag + "; fileSize:" + fileSize + "; storageClass:" +* storageClass); }*/} catch (CosServiceException serverException) {serverException.printStackTrace();} catch (CosClientException clientException) {clientException.printStackTrace();}return objectListing;}}

controller层

@RequestMapping("file")
@RestController
public class CosTestController {@RequestMapping("/upload")public String upFile(@RequestParam("file")MultipartFile file) {try {CosTestUtil.upFile(file.getInputStream(),file.getOriginalFilename());} catch (IOException e) {e.printStackTrace();return "fail";}return "success";}/*** 改存储桶已经在前端界面进行创建 创建存储桶测试成功*/@RequestMapping("/create")public String createCosBucket(){try {CosTestUtil.createCosBucket();} catch (Exception e) {e.printStackTrace();return "fail";}return "sucess";}@RequestMapping("/download")public String downFile(){try {CosTestUtil.downFile();} catch (Exception e) {e.printStackTrace();return "fail";}return "success";}@RequestMapping("/delFile")public String delFile() {try {CosTestUtil.delFile();} catch (Exception e) {e.printStackTrace();return "fail";}return "success";}/*** 查询存储桶列表 已经测试、成功** @return*/@RequestMapping("/query")public List<Bucket> queryBucketList(){List<Bucket> buckets = CosTestUtil.queryBucketList();return buckets;}/*** 查询存储桶中内容(需要改1处位置)* @param*/@RequestMapping("/get")public ObjectListing getContent() {return CosTestUtil.getContent();}
}

页面显示

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>Insert title here</title>
</head>
<body>
<h1>文件上传</h1>
<form action="/file/upload" method="post" enctype="multipart/form-data" >文件上传:<input type="file" name="file" ><br/><input type="submit" value="点击上传文件" ><br/>
</form><h1>文件下载</h1>
<a href="/file/download">下载</a>
</body>
</html>

四、测试

1、上传下载

浏览器输入:localhost:8000/index.html,点击上传文件响应


上传成功!!!

点击下载超链接

查看本地路径

下载成功!!!

2、删除文件


浏览器输入:localhost:8000/file/delFile

查看存储桶

删除成功!!!

3、查询存储桶,创建存储桶

浏览器输入:localhost:8000/file/create

注意: 这里的AppId是创建时的第一步创建密钥时的appid


创建成功!!!

浏览器输入:localhost:8000/file/query

查询成功!!!

4、查询存储桶中内容

浏览器输入:localhost:8000/file/get

查询成功!!!

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

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

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

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

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

  3. 认证+1!腾讯云对象存储COS、存储一体机TStor首批通过信通院云原生存储能力评估

    数字经济发展日新月异,企业走向数字化,诞生了海量的软件和服务.软件行业高数据规模,高自动化.高迭代速度的要求,给传统软件行业带来了挑战.为推动软件架构更加健全,管理更加高效,云原生的概念应运而生,强调 ...

  4. 腾讯云对象存储COS + 数据万象CI = 完善的图片解决方案

    沈唁 PHP工程师,开源爱好者,WordPress插件Sync QCloud COS 作者,GitHub@sy-records 在日常开发当中,我们必然会遇到一些图片存储问题,例如用户头像.聊天产生的 ...

  5. 腾讯云对象存储 COS 服务之 XML Python SDK 实践

    文章目录 前言 1 SDK 安装 2 测试代码准备 - 文件上传和下载 2.1 初始化 2.2 文件上传 2.3 文件下载 3 测试验证 END 前言 腾讯云对象存储(Cloud Object Sto ...

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

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

  7. 腾讯云cos html,Docsify+腾讯云对象存储 COS,一键搭建云上静态博客

    最近一直在想如何利用 COS 简化静态博客的搭建过程.搜了很多的静态博客搭建过程,发现大部分的静态博客都要通过编译才能生成静态页面.功夫不负有心人,终于让我找到了一个超简洁博客的搭建方法. 效果预览 ...

  8. 如何开通并快速入门腾讯云对象存储COS服务?

    简介 对象存储(Cloud Object Storage,COS)控制台是 COS 为用户提供的最简单且易于上手的操作方式.用户无需编写代码或运行程序,可直接通过 COS 控制台使用 COS 服务. ...

  9. 轻松实现微信小程序上传多文件/图片到腾讯云对象存储COS(免费额度)

    概述 对象存储(Cloud Object Storage,COS)是腾讯云提供的一种存储海量文件的分布式存储服务,用户可通过网络随时存储和查看数据. 个人账户首次开通COS可以免费领取50GB 标准存 ...

最新文章

  1. linux open 缓冲区,Linux上文件的默认缓冲区大小
  2. 加密解密、食谱、新冠序列,各种有趣的开源项目Github上都有
  3. Sql Server之旅——第十一站 简单说说sqlserver的执行计划
  4. jsp+mysql+servlet的登录
  5. matlab参考答案2011至诚,职高数学试卷答卷答案详解
  6. textarea标签内的文字无缘故居中解决原因
  7. linux基础知识——IPC之管道
  8. 【文献阅读】Self-Normalizing Neural Networks
  9. swagger openapi开放平台 pyhton3.7实现http发送请求,pyhon中代码中发送http请求控制4g物联网开关
  10. 测试一段C代码的执行时间(windows系统和ubuntu系统)
  11. 几人同行时步伐总是整齐
  12. linux文件系统 ext3,Linux环境中使用Ext3文件系统
  13. Alpha Test和Alpha Blend Shader两种处理透明的方法
  14. 电商一定是一元化结构
  15. 关于Linux UDP/TCP reuseport 二三事
  16. 识图在线识图_以图搜图在线搜索软件
  17. 一位大牛对学IT的忠告
  18. 利用Google Earth卫星图更新地形图地物
  19. 成都榆熙:做拼多多电商如何优化用户消费体验?
  20. java基于ssm的论坛贴子网站ssm论坛项目发帖子网站论坛系统论坛源码

热门文章

  1. C#华氏温度和摄氏温度的相互专函源码片段
  2. pyside6开发-01-PushButton
  3. 服务器 声音响 风扇转速调节
  4. SAP 批次管理(分割评估)
  5. 平板电脑与计算机连接网络,平板电脑怎么连接网络 平板连接wifi上网方法【详解】...
  6. Score Matching算法介绍
  7. 总结:四张图读懂手游发行公司的日常工作
  8. GitHub 入门 : https://help.github.com/
  9. 基于Stm32f103软件iic利用SH1106驱动0.96寸OLED
  10. 深度系统梳理前端性能优化