腾讯云-对象存储

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

 

看案例:

@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();
}

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是王小贱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值