You need to enable JavaScript to run this app.
对象存储

对象存储

复制全文
管理桶配置
管理桶存储类型(Java SDK)
复制全文
管理桶存储类型(Java SDK)

桶(Bucket)是 TOS 的全局唯一的命名空间,相当于数据的容器,用来储存对象(Object)数据。TOS 提供了多种桶级别的存储类型,分别适用于不同的应用场景。本文介绍如何通过 TOS Java SDK 管理桶的存储类型。

存储类型说明

TOS 提供的桶存储类型包含以下几类。

存储类型

描述

访问权限值

标准存储

桶默认存储类型,适用于各种社交、分享类的图片、音视频应用、大型网站、大数据分析等业务场景,例如程序下载、移动应用等。

StorageClassType.STORAGE_CLASS_STANDARD

低频存储

适用于较低访问频率(平均每月访问频率 1 到 2 次)的业务场景,例如热备数据、监控视频数据等。

StorageClassType.STORAGE_CLASS_IA

归档闪回存储

需要长期保存且不太访问的业务场景,例如档案资料等。

StorageClassType.STORAGE_CLASS_ARCHIVE_FR

智能分层存储

适用于访问频率不确定的数据,可根据访问频率转换访问层,降低存储费用。

StorageClassType.STORAGE_CLASS_INTELLIGENT_TIERING

冷归档存储

属于冷数据类型,适用于极少访问、需要长期保存数据的业务场景。最少需要存储 180 天;访问冷归档数据前需要先恢复数据。

StorageClassType.COLD_ARCHIVE

设置存储类型

您可以通过 TOS Java SDK 的 putBucketStorageClass 接口设置指定桶的存储类型。

存储类型说明

注意

  • 默认只有桶拥有者(Owner)具备设置桶存储类型的权限。
  • 创建桶时,若未指定桶存储类型,则默认存储类型为标准存储。
  • 设置了桶存储类型后,若上传对象、复制对象和初始化分片上传任务时未指定对象存储类型,则该对象默认继承使用桶的存储类型。

示例代码

以下代码展示如何设置桶的存储类型。

import com.volcengine.tos.TOSV2;
import com.volcengine.tos.TOSV2ClientBuilder;
import com.volcengine.tos.TosClientException;
import com.volcengine.tos.TosServerException;
import com.volcengine.tos.comm.common.StorageClassType;
import com.volcengine.tos.model.bucket.PutBucketStorageClassInput;
import com.volcengine.tos.model.bucket.PutBucketStorageClassOutput;

public class PutBucketStorageClassExample {
    public static void main(String[] args) {
        String endpoint = "your endpoint";
        String region = "your region";
        String accessKey = System.getenv("TOS_ACCESS_KEY");
        String secretKey = System.getenv("TOS_SECRET_KEY");

        String bucketName = "your bucket name";

        TOSV2 tos = new TOSV2ClientBuilder().build(region, endpoint, accessKey, secretKey);

        try{
            StorageClassType storageClass = StorageClassType.STORAGE_CLASS_IA;
            PutBucketStorageClassInput input = new PutBucketStorageClassInput().setBucket(bucketName)
                    .setStorageClass(storageClass);
            PutBucketStorageClassOutput output = tos.putBucketStorageClass(input);
            System.out.println("putBucketStorageClass succeed");
        } catch (TosClientException e) {
            // 操作失败,捕获客户端异常,一般情况是请求参数错误,此时请求并未发送
            System.out.println("putBucketStorageClass failed");
            System.out.println("Message: " + e.getMessage());
            if (e.getCause() != null) {
                e.getCause().printStackTrace();
            }
        } catch (TosServerException e) {
            // 操作失败,捕获服务端异常,可以获取到从服务端返回的详细错误信息
            System.out.println("putBucketStorageClass failed");
            System.out.println("StatusCode: " + e.getStatusCode());
            System.out.println("Code: " + e.getCode());
            System.out.println("Message: " + e.getMessage());
            System.out.println("RequestID: " + e.getRequestID());
        } catch (Throwable t) {
            // 作为兜底捕获其他异常,一般不会执行到这里
            System.out.println("putBucketStorageClass failed");
            System.out.println("unexpected exception, message: " + t.getMessage());
        }
    }
}

获取桶存储类型

您可以通过 TOS Java SDK 的 headBucket 接口获取指定桶当前配置的存储类型。
关于 headBucket 接口的相关说明和示例代码,请见获取桶元数据

相关文档

关于存储类型的更多信息,请参见存储类型

最近更新时间:2024.02.04 18:31:02
这个页面对您有帮助吗?
有用
有用
无用
无用