腾讯COS存储的使用

 2023-09-05 阅读 61 评论 0

摘要:文章目录一、简介二、使用代码1、获取永久密钥2、添加pom.xml中的依赖3、初始化用户身份信息4、创建存储桶(需要先进行3、初始化用户身份信息)5、创建存储桶(需要先进行3、初始化用户身份信息)6、上传对象(需要先进行3、初始化用户身份信

文章目录

    • 一、简介
    • 二、使用代码
      • 1、获取永久密钥
      • 2、添加pom.xml中的依赖
      • 3、初始化用户身份信息
      • 4、创建存储桶(需要先进行3、初始化用户身份信息)
      • 5、创建存储桶(需要先进行3、初始化用户身份信息)
      • 6、上传对象(需要先进行3、初始化用户身份信息)(需要改3处)
      • 7、查询存储桶中内容(需要先进行3、初始化用户身份信息)(需要改1处)
      • 8、下载文件(需要先进行3、初始化用户身份信息)(需要改3处)
      • 9、删除文件(需要先进行3、初始化用户身份信息)(需要改2处)
      • 10、关闭客户端(需要先进行3、初始化用户身份信息)
    • 三、完整代码

一、简介

对象存储(Cloud Object Storage,COS)是腾讯云提供的一种存储海量文件的分布式存储服务,用户可通过网络随时存储和查看数据。腾讯云 COS 使所有用户都能使用具备高扩展性、低成本、可靠和安全的数据存储服务。

COS 通过控制台、API、SDK 和工具等多样化方式简单、快速地接入,实现了海量数据存储和管理。通过 COS 可以进行多格式文件的上传、下载和管理。腾讯云提供了直观的 Web 管理界面,同时遍布全国范围的 CDN 节点可以对文件下载进行加速。

二、使用代码

1、获取永久密钥

若您使用永久密钥初始化 COSClient,可以先在访问管理控制台中的 API 密钥管理 页面获取 SecretId、SecretKey,使用永久密钥适用于大部分的应用场景;

2、添加pom.xml中的依赖

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

3、初始化用户身份信息

// 1 初始化用户身份信息(secretId, secretKey)。
String secretId = "COS_SECRETID";
String secretKey = "COS_SECRETKEY";
COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);
// 2 设置 bucket 的区域, COS 地域的简称请参照 https://cloud.tencent.com/document/product/436/6224
// clientConfig 中包含了设置 region, https(默认 http), 超时, 代理等 set 方法, 使用可参见源码或者常见问题 Java SDK 部分。
Region region = new Region("ap-guangzhou");
ClientConfig clientConfig = new ClientConfig(region);
// 3 生成 cos 客户端。
COSClient cosClient = new COSClient(cred, clientConfig);

4、创建存储桶(需要先进行3、初始化用户身份信息)

//  存储桶名称,格式:BucketName-APPID(后面ID每个用户唯一)(需要改1)String bucket = "exa-1300615854";CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucket);
// 设置 bucket 的权限为 PublicRead(公有读私有写), 其他可选有私有读写, 公有读写createBucketRequest.setCannedAcl(CannedAccessControlList.PublicRead);try{Bucket bucketResult = cosClient.createBucket(createBucketRequest);} catch (CosServiceException serverException) {serverException.printStackTrace();} catch (CosClientException clientException) {clientException.printStackTrace();}

在这里插入图片描述

5、创建存储桶(需要先进行3、初始化用户身份信息)

try {List<Bucket> buckets = cosClient.listBuckets();System.out.println(buckets);} catch (CosServiceException serverException) {serverException.printStackTrace();} catch (CosClientException clientException) {clientException.printStackTrace();}

6、上传对象(需要先进行3、初始化用户身份信息)(需要改3处)

try {// 指定要上传的文件(需要改1)File localFile = new File("D:\\11.pdf");// 指定要上传到的存储桶(需要改2)String bucketName = "start-1300615357";// 指定要上传到 COS 上对象键(需要改3)String key = "exampl";PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, localFile);PutObjectResult putObjectResult = cosClient.putObject(putObjectRequest);
} catch (CosServiceException serverException) {serverException.printStackTrace();
} catch (CosClientException clientException) {clientException.printStackTrace();
}

7、查询存储桶中内容(需要先进行3、初始化用户身份信息)(需要改1处)

try {
//            桶容器的名称(需要改1)String bucket = "start-1300615357";ListObjectsRequest listObjectsRequest = new ListObjectsRequest();// 设置 bucket 名称listObjectsRequest.setBucketName(bucket);// prefix 表示列出的 object 的 key 以 prefix 开始listObjectsRequest.setPrefix("");// 设置最大遍历出多少个对象, 一次 listobject 最大支持1000listObjectsRequest.setMaxKeys(1000);listObjectsRequest.setDelimiter("/");ObjectListing objectListing = cosClient.listObjects(listObjectsRequest);for (COSObjectSummary cosObjectSummary : objectListing.getObjectSummaries()) {// 对象的路径 keyString key = cosObjectSummary.getKey();// 对象的 etagString 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();}

8、下载文件(需要先进行3、初始化用户身份信息)(需要改3处)

try{
// 指定对象所在的存储桶(需要改1)String bucketName = "start-1300615357";
// 指定对象在 COS 上的对象键(需要改2)String key = "exampl";
// 指定要下载到的本地路径(需要制定文件名)(需要改3)File downFile = new File("D:\\12.pdf");GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, key);ObjectMetadata downObjectMeta = cosClient.getObject(getObjectRequest, downFile);} catch (CosServiceException serverException) {serverException.printStackTrace();} catch (CosClientException clientException) {clientException.printStackTrace();
}

9、删除文件(需要先进行3、初始化用户身份信息)(需要改2处)

删除 COS 上指定路径的对象;

try {
// 指定对象所在的存储桶(需要改1)String bucketName = "start-1300615357";
// 指定对象在 COS 上的对象键(需要改2)String key = "exampl";cosClient.deleteObject(bucketName, key);
} catch (CosServiceException serverException) {serverException.printStackTrace();
} catch (CosClientException clientException) {clientException.printStackTrace();
}

10、关闭客户端(需要先进行3、初始化用户身份信息)

关闭 cosClient,并释放 HTTP 连接的后台管理线程。

// 关闭客户端(关闭后台线程)
cosClient.shutdown();

三、完整代码

下面是一个完成的代码。主要把账号信息改为自己的就可以了;

package com.lydms.web;import com.qcloud.cos.COSClient;
import com.qcloud.cos.ClientConfig;
import com.qcloud.cos.auth.BasicCOSCredentials;
import com.qcloud.cos.auth.COSCredentials;
import com.qcloud.cos.exception.CosClientException;
import com.qcloud.cos.exception.CosServiceException;
import com.qcloud.cos.model.*;
import com.qcloud.cos.region.Region;import java.io.File;
import java.util.List;public class TestCos {public static void main(String[] args) {
// 1 初始化用户身份信息(secretId, secretKey)。String secretId = "AKIDTmyudXgm59zmT6T3GI5cw3wb1T5lmYeU";String secretKey = "mJZTKp8GApJpBTErIWZNuCLJ5cTeuvhF";COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);
// 2 设置 bucket 的区域, COS 地域的简称请参照 https://cloud.tencent.com/document/product/436/6224
// clientConfig 中包含了设置 region, https(默认 http), 超时, 代理等 set 方法, 使用可参见源码或者常见问题 Java SDK 部分。Region region = new Region("ap-beijing");ClientConfig clientConfig = new ClientConfig(region);
// 3 生成 cos 客户端。COSClient cosClient = new COSClient(cred, clientConfig);//        查询存储桶列表getbucket(cosClient);//        上传文件到桶容器upload(cosClient);//        查询存储桶中内容getContent(cosClient);//        下载文件downFile(cosClient);//        删除文件deleteFile(cosClient);//         创建桶容器creatBucket(cosClient);//        关闭客户端(关闭后台线程)cosClient.shutdown();}/*** 创建存储桶(需要改3处)* @return*/private static void creatBucket(COSClient cosClient) {String bucket = "exa-1300415347";CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucket);
// 设置 bucket 的权限为 PublicRead(公有读私有写), 其他可选有私有读写, 公有读写createBucketRequest.setCannedAcl(CannedAccessControlList.PublicRead);try {Bucket bucketResult = cosClient.createBucket(createBucketRequest);} catch (CosServiceException serverException) {serverException.printStackTrace();} catch (CosClientException clientException) {clientException.printStackTrace();}}/*** 删除文件(需要改2处位置)* @param cosClient*/private static void deleteFile(COSClient cosClient) {try {// 指定对象所在的存储桶(需要改1)String bucketName = "start-1300415347";// 指定对象在 COS 上的对象键(需要改2)String key = "exampl";cosClient.deleteObject(bucketName, key);} catch (CosServiceException serverException) {serverException.printStackTrace();} catch (CosClientException clientException) {clientException.printStackTrace();}}/*** 下载文件(需要改3处位置)** @param cosClient*/private static void downFile(COSClient cosClient) {try {// 指定对象所在的存储桶(需要改1)String bucketName = "start-1300415347";// 指定对象在 COS 上的对象键(需要改2)String key = "exampl";// 指定要下载到的本地路径(需要制定文件名)(需要改3)File downFile = new File("D:\\12.pdf");GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, key);ObjectMetadata downObjectMeta = cosClient.getObject(getObjectRequest, downFile);} catch (CosServiceException serverException) {serverException.printStackTrace();} catch (CosClientException clientException) {clientException.printStackTrace();}}/*** 查询存储桶中内容(需要改1处位置)** @param cosClient*/private static void getContent(COSClient cosClient) {try {
//            桶容器的名称(需要改1)String bucket = "start-1300415347";ListObjectsRequest listObjectsRequest = new ListObjectsRequest();// 设置 bucket 名称listObjectsRequest.setBucketName(bucket);// prefix 表示列出的 object 的 key 以 prefix 开始listObjectsRequest.setPrefix("");// 设置最大遍历出多少个对象, 一次 listobject 最大支持1000listObjectsRequest.setMaxKeys(1000);listObjectsRequest.setDelimiter("/");ObjectListing objectListing = cosClient.listObjects(listObjectsRequest);for (COSObjectSummary cosObjectSummary : objectListing.getObjectSummaries()) {// 对象的路径 keyString key = cosObjectSummary.getKey();// 对象的 etagString 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();}}/*** 上传文件到桶容器(需要改3处位置)** @param cosClient*/private static void upload(COSClient cosClient) {try {// 指定要上传的文件(需要改1)File localFile = new File("D:\\11.pdf");// 指定要上传到的存储桶(需要改2)String bucketName = "start-1300415347";// 指定要上传到 COS 上对象键(需要改3)String key = "exampl";PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, localFile);PutObjectResult putObjectResult = cosClient.putObject(putObjectRequest);} catch (CosServiceException serverException) {serverException.printStackTrace();} catch (CosClientException clientException) {clientException.printStackTrace();}}/*** 查询存储桶列表(根据用户信息进行)** @param cosClient*/private static void getbucket(COSClient cosClient) {try {List<Bucket> buckets = cosClient.listBuckets();System.out.println(buckets);} catch (CosServiceException serverException) {serverException.printStackTrace();} catch (CosClientException clientException) {clientException.printStackTrace();}}
}

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/919.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息