腾讯云-对象存储

mac2024-05-07  33

为了模仿真实的开发环境,在项目开发中,我们往往需要将项目中上传,下载的图片存储起来以备使用,这里我们将使用腾讯云的对象存储服务,将项目中需要的图片等新存储到腾讯云提供的存储桶中,使用的时候直接从云端获取即可,不必占用我们本地的存储空间,方便快捷。

 

看案例:

@Test public void list() {     // 1 初始化用户身份信息(secretId, secretKey)。         //这里的id,key可以在腾讯云控制台中自己生成。     String secretId = "*******";     String 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-shanghai"); //上海的存储桶 wangxk-1255619906     ClientConfig clientConfig = new ClientConfig(region);     // 3 生成 cos 客户端。     COSClient cosClient = new COSClient(cred, clientConfig);     try {         // 指定对象所在的存储桶         String bucketName = "wangxk-1255619906";         List<Bucket> buckets = cosClient.listBuckets();         System.out.println("存储的对象集合为:" + buckets);         //查询对象列表         String bucket = "wangxk-1255619906";         ListObjectsRequest listObjectsRequest = new ListObjectsRequest();         // 设置 bucket 名称         listObjectsRequest.setBucketName(bucket);         // prefix 表示列出的 object 的 key 以 prefix 开始         listObjectsRequest.setPrefix("");         // 设置最大遍历出多少个对象, 一次 listobject 最大支持1000         listObjectsRequest.setMaxKeys(1000);         listObjectsRequest.setDelimiter("/");         ObjectListing 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);         }         //删除对象         // 指定对象在 COS 上的对象键         String key = "dasdada.jpg"; //图片的名称         cosClient.deleteObject(bucketName, key);         //上传本地对象到存储桶中         File localFile = new File("C:\\Users\\wangxk\\Pictures\\timg (6).jpg");         String uploadPinture = "Blog_Picture/timg (6).jpg";         PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, uploadPinture, localFile);      // 设置存储类型为低频         putObjectRequest.setStorageClass(StorageClass.Standard_IA);         // 设置自定义属性(如 content-type, content-disposition 等)         ObjectMetadata objectMetadata = new ObjectMetadata();         // 设置 Content type, 默认是 application/octet-stream         objectMetadata.setContentType("image/jpeg");         putObjectRequest.setMetadata(objectMetadata);         PutObjectResult putObjectResult = cosClient.putObject(putObjectRequest);         String etag = putObjectResult.getETag();  // 获取文件的 etag         System.out.println("得到的返回值为:" + etag);         //下载对象到本地         File downFile = new File("D:/picture/0a126742810942e193b46020082e1801.jpg");         GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, "0a126742810942e193b46020082e1801.jpg");         ObjectMetadata downObjectMeta = cosClient.getObject(getObjectRequest, downFile);     } catch (CosServiceException serverException) {         serverException.printStackTrace();     } catch (CosClientException clientException) {         clientException.printStackTrace();     }     // 关闭客户端     cosClient.shutdown(); }

如果有不明白的可以查询官方文档,腾讯云对象存储官方文档

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

最新回复(0)