You need to enable JavaScript to run this app.
导航

管理桶存储类型(Python SDK)

最近更新时间2024.02.04 18:31:03

首次发布时间2023.01.19 17:25:20

桶(Bucket)是 TOS 的全局唯一的命名空间,相当于数据的容器,用来储存对象(Object)数据。TOS提供了多种桶存储类型,可适用于各种应用场景。本文介绍如何设置桶的存储类型。

存储类型说明

桶存储类型包含以下几类,关于存储类型的更多信息,请参见存储类型

存储类型

描述

存储类型枚举值

标准存储

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

tos.StorageClassType.Storage_Class_Standard

低频存储

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

tos.StorageClassType.Storage_Class_Ia

归档闪回存储

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

tos.StorageClassType.Storage_Class_Archive_Fr

智能分层存储

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

tos.StorageClassType.Storage_Class_INTELLIGENT_TIERING

冷归档存储

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

tos.StorageClassType.Storage_Class_Cold_Archive

设置存储类型

注意

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

示例代码

以下代码用于设置 bucket-test 桶的存储类型。

import os
import tos

# 从环境变量获取 AK 和 SK 信息。
ak = os.getenv('TOS_ACCESS_KEY')
sk = os.getenv('TOS_SECRET_KEY')
# your endpoint 和 your region 填写Bucket 所在区域对应的Endpoint。# 以华北2(北京)为例,your endpoint 填写 tos-cn-beijing.volces.com,your region 填写 cn-beijing。
endpoint = "your endpoint"
region = "your region"
bucket_name = "bucket-test"

try:
    # 创建 TosClientV2 对象,对桶和对象的操作都通过 TosClientV2 实现
    client = tos.TosClientV2(ak, sk, endpoint, region)
    # 设置桶的类型为 IA
    client.put_bucket_storage_class(bucket_name, tos.StorageClassType.Storage_Class_Ia)
except tos.exceptions.TosClientError as e:
    # 操作失败,捕获客户端异常,一般情况为非法请求参数或网络异常
    print('fail with client error, message:{}, cause: {}'.format(e.message, e.cause))
except tos.exceptions.TosServerError as e:
    # 操作失败,捕获服务端异常,可从返回信息中获取详细错误信息
    print('fail with server error, code: {}'.format(e.code))
    # request id 可定位具体问题,强烈建议日志中保存
    print('error with request id: {}'.format(e.request_id))
    print('error with message: {}'.format(e.message))
    print('error with http code: {}'.format(e.status_code))
    print('error with ec: {}'.format(e.ec))
    print('error with request url: {}'.format(e.request_url))
except Exception as e:
    print('fail with unknown error: {}'.format(e))

获取桶存储类型

注意

获取桶存储类型,默认只有桶拥有者具备此权限。

示例代码

以下代码用于获取桶 bucket-test 的存储类型。

import os
import tos

# 从环境变量获取 AK 和 SK 信息。
ak = os.getenv('TOS_ACCESS_KEY')
sk = os.getenv('TOS_SECRET_KEY')
# your endpoint 和 your region 填写Bucket 所在区域对应的Endpoint。# 以华北2(北京)为例,your endpoint 填写 tos-cn-beijing.volces.com,your region 填写 cn-beijing。
endpoint = "your endpoint"
region = "your region"
bucket_name = "bucket-test"

try:
    # 创建 TosClientV2 对象,对桶和对象的操作都通过 TosClientV2 实现
    client = tos.TosClientV2(ak, sk, endpoint, region)
    # 通过head_bucket方法获取桶存储类型
    resp = client.head_bucket(bucket_name)
    print('bucket storage class {}'.format(resp.storage_class.value))
except tos.exceptions.TosClientError as e:
    # 操作失败,捕获客户端异常,一般情况为非法请求参数或网络异常
    print('fail with client error, message:{}, cause: {}'.format(e.message, e.cause))
except tos.exceptions.TosServerError as e:
    # 操作失败,捕获服务端异常,可从返回信息中获取详细错误信息
    print('fail with server error, code: {}'.format(e.code))
    # request id 可定位具体问题,强烈建议日志中保存
    print('error with request id: {}'.format(e.request_id))
    print('error with message: {}'.format(e.message))
    print('error with http code: {}'.format(e.status_code))
    print('error with ec: {}'.format(e.ec))
    print('error with request url: {}'.format(e.request_url)) 
except Exception as e:
    print('fail with unknown error: {}'.format(e))

相关文档

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