桶(Bucket)是 TOS 的全局唯一的命名空间,相当于数据的容器,用来储存对象(Object)数据。TOS提供了多种桶存储类型,可适用于各种应用场景,本文介绍如何设置桶的存储类型。
桶存储类型包含以下几类,关于存储类型的更多信息,请参见存储类型。
存储类型 | 描述 | 对应枚举值 |
---|---|---|
标准存储 | 桶默认存储类型,高可用、高可靠、高性能存储类型,适用于频繁被访问的数据。 | StorageClassType::STANDARD |
低频存储 | 适用于较低访问频率(平均每月访问频率 1 到 2 次)的业务场景,最少存储 30 天。 | StorageClassType::IA |
归档闪回存储 | 需要长期保存且不太访问的业务场景,最少存储 90 天。 | StorageClassType::ARCHIVE_FR |
智能分层存储 | 适用于访问频率不确定的数据,可根据访问频率转换访问层,降低存储费用。 | StorageClassType::INTELLIGENT_TIERING |
冷归档存储 | 属于冷数据类型,适用于极少访问、需要长期保存数据的业务场景。最少需要存储 180 天;访问冷归档数据前需要先恢复数据。 | StorageClassType::COLD_ARCHIVE |
注意
以下代码用于设置 examplebucket
桶的存储类型。
#include "TosClientV2.h" using namespace VolcengineTos; int main(void){ // 初始化 TOS 账号信息 // Your Region 填写 Bucket 所在 Region std::string region = "Your Region"; std::string accessKey = std::getenv("TOS_ACCESS_KEY"); std::string secretKey = std::getenv("TOS_SECRET_KEY"); // 填写 Bucket 名称,例如 examplebucket std::string bucketName = "examplebucket"; // 初始化网络等资源 InitializeClient(); // 创建交互的 client TosClientV2 client(region, accessKey, secretKey); // 设置桶的存储类型为 IA PutBucketStorageClassInput input(bucketName, StorageClassType::IA); auto output = client.putBucketStorageClass(input); if (!output.isSuccess()) { // 异常处理 std::cout << "PutBucketStorageClass failed." << output.error().String() << std::endl; // 释放网络等资源 CloseClient(); return -1; } std::cout << "PutBucketStorageClass success." << std::endl; // 释放网络等资源 CloseClient(); return 0; }
以下代码用于获取桶 examplebucket
的存储类型。
#include "TosClientV2.h" using namespace VolcengineTos; int main(void){ // 初始化 TOS 账号信息 // Your Region 填写 Bucket 所在 Region std::string region = "Your Region"; std::string accessKey = std::getenv("TOS_ACCESS_KEY"); std::string secretKey = std::getenv("TOS_SECRET_KEY"); // 填写 Bucket 名称,例如 examplebucket std::string bucketName = "examplebucket"; // 初始化网络等资源 InitializeClient(); // 创建交互的 client TosClientV2 client(region, accessKey, secretKey); // 获取桶元数据 HeadBucketV2Input input(bucketName); auto output = client.headBucket(input); if (!output.isSuccess()) { // 异常处理 std::cout << "GetBucketStorageClass failed." << output.error().String() << std::endl; // 释放网络等资源 CloseClient(); return -1; } // 打印桶的存储类型信息 std::cout << "GetBucketStorageClass success, the bucket storage class is:" << output.result().getStringFormatStorageClass() << std::endl; // 释放网络等资源 CloseClient(); return 0; }
关于存储类型的更多信息,请参见存储类型。