IBM Cloud Docs
使用存储类

使用存储类

并非所有数据都会传送到活动工作负载。 归档数据可能很长时间都不会使用。 对于活动较少的工作负载,可以创建使用不同存储类的存储区。 对于这些存储区中存储的对象,收费安排与标准存储器不同。

此功能当前在 Object Storage 中不支持 Satellite。 了解更多信息。

存储类有哪些?

可以从四种存储类中进行选择:

  • 智能层 可用于任何工作负载,尤其是访问模式未知或难以预测的动态工作负载。 Smart Tier 通过根据每月使用模式将数据分类为“热”,“酷”和“冷”层,从而提供简化的定价结构和自动成本优化。 然后,将以最低适用率对存储区中的所有数据进行计费。 没有阈值对象大小或存储周期,也没有检索费用。 有关其工作方式的详细说明,请参阅 计费主题
  • 标准用于活动工作负载,检索数据免费(除了操作请求本身的成本外)。
  • 保险库用于凉工作负载,其中访问数据的频率少于每月一次 - 每次读取数据时,会产生额外的检索费用(美元/GB)。 该服务包括符合服务预期用途的对象大小和存储时间段的最小阈值:存储不太活跃且活动性较低的数据。
  • 冷保险库用于冷工作负载,其中访问数据的频率为每 90 天一次或更低 - 每次读取数据时,会产生更多额外检索费用(美元/GB)。 该服务包括符合服务预期用途的对象大小和存储时间段的最小阈值:存储不活跃的非活动数据。

Flex 已替换为用于动态工作负载的 Smart Tier。 Flex 用户可以继续在现有 Flex 存储区中管理其数据,尽管无法创建新的 Flex 存储区。 现有用户可以在 此处 引用定价信息。

欲了解更多信息,请参阅 ibm.com 上的定价表

活动存储类仅用于 单费率计划,不能用于标准计划实例。

有关如何创建使用不同存储类的存储区的更多信息,请参阅 API 参考

对于每个存储类,计费基于实例级别的所有存储区的汇总使用情况。 例如,对于 Smart Tier,计费基于给定实例中所有 Smart Tier 存储区 (而不是各个存储区) 的使用情况。

如何创建使用不同存储类的存储区?

在控制台中创建存储区时,有一个菜单支持选择存储类。

以编程方式创建存储区时,必须指定与使用的端点相对应的 LocationConstraintLocationConstraint 的有效供应代码是
   BR 圣保罗 br-sao-standard / br-sao-vault / br-sao-cold / br-sao-smart
   美国地理 us-standard / us-vault / us-cold / us-smart
   美国东部 us-east-standard / us-east-vault / us-east-cold / us-east-smart
   美国南部 us-south-standard / us-south-vault/ us-south-cold/ us-south-smart
   EU 地理位置 eu-standard / eu-vault / eu-cold / eu-smart
   欧盟 大不列颠 eu-gb-standard / eu-gb-vault / eu-gb-cold / eu-gb-smart
   欧盟德国 eu-de-standard / eu-de-vault / eu-de-cold / eu-de-smart
   欧盟西班牙 eu-es-standard / eu-es-vault / eu-es-cold / eu-es-smart
   AP 地理位置 ap-standard / ap-vault / ap-cold / ap-smart
   AP 东京 jp-tok-standard / jp-tok-vault / jp-tok-cold / jp-tok-smart
   AP 大坂 jp-osa-standard / jp-osa-vault / jp-osa-cold / jp-osa-smart
   AP 澳大利亚 au-syd-standard / au-syd-vault / au-syd-cold / au-syd-smart
   CA 多伦多 ca-tor-standard / ca-tor-vault / ca-tor-cold / ca-tor-smart
   阿姆斯特丹 ams03-standard / ams03-vault / ams03-cold / ams03-smart
   Chennai che01-standard / che01-vault / che01-cold / che01-smart
   Milan mil01-standard / mil01-vault / mil01-cold / mil01-smart
   M o n t r é a l mon01-standard / mon01-vault / mon01-cold / mon01-smart
   巴黎 par01-standard / par01-vault / par01-cold / par01-smart
   圣何塞 sjc04-standard / sjc04-vault / sjc04-cold / sjc04-smart
   新加坡 sng01-standard / sng01-vault / sng01-cold / sng01-smart

有关端点的更多信息,请参阅端点和存储位置

使用 REST API、库和 SDK

IBM COS SDK 中引入了多个新的 API,用于支持应用程序使用保留时间策略。 在此页面顶部选择语言(curl、Java、JavaScript 或 Python),以查看使用相应 COS SDK 的示例。

所有代码示例都假定存在可调用不同方法的名为 cos 的客户机对象。 有关创建客户机的详细信息,请参阅特定的 SDK 指南。

创建使用某个存储类的存储区

public static void createBucket(String bucketName) {
    System.out.printf("Creating new bucket: %s\n", bucketName);
    _cos.createBucket(bucketName, "us-vault");
    System.out.printf("Bucket: %s created!\n", bucketName);
}
function createBucket(bucketName) {
    console.log(`Creating new bucket: ${bucketName}`);
    return cos.createBucket({
        Bucket: bucketName,
        CreateBucketConfiguration: {
          LocationConstraint: 'us-standard'
        },
    }).promise()
    .then((() => {
        console.log(`Bucket: ${bucketName} created!`);
    }))
    .catch((e) => {
        console.error(`ERROR: ${e.code} - ${e.message}\n`);
    });
}
def create_bucket(bucket_name):
    print("Creating new bucket: {0}".format(bucket_name))
    try:
        cos.Bucket(bucket_name).create(
            CreateBucketConfiguration={
                "LocationConstraint":COS_BUCKET_LOCATION
            }
        )
        print("Bucket: {0} created!".format(bucket_name))
    except ClientError as be:
        print("CLIENT ERROR: {0}\n".format(be))
    except Exception as e:
        print("Unable to create bucket: {0}".format(e))
func main() {

    // Create client
    sess := session.Must(session.NewSession())
    client := s3.New(sess, conf)

    // Bucket Names
    newBucket := "<NEW_BUCKET_NAME>"

    input := &s3.CreateBucketInput{
        Bucket: aws.String(newBucket),
        CreateBucketConfiguration: &s3.CreateBucketConfiguration{
            LocationConstraint: aws.String("us-cold"),
        },
    }
    client.CreateBucket(input)

    d, _ := client.ListBuckets(&s3.ListBucketsInput{})
    fmt.Println(d)
}
curl -X "PUT" "https://(endpoint)/(bucket-name)"
 -H "Content-Type: text/plain; charset=utf-8"
 -H "Authorization: Bearer (token)"
 -H "ibm-service-instance-id: (resource-instance-id)"
 -d "<CreateBucketConfiguration>
       <LocationConstraint>(provisioning-code)</LocationConstraint>
     </CreateBucketConfiguration>"

创建存储区后,即无法更改存储区的存储类。 如果需要重新分类对象,必须将数据移至使用所需存储类的其他存储区。