OSS提供标准、低频访问、归档和冷归档四种存储类型,全面覆盖从热到冷的各种数据存储场景。本文主要介绍如何转换文件(Object)的存储类型。
有关存储类型的更多信息,请参见开发指南的存储类型介绍及存储类型转换。
以下提供了详细的示例代码用于Object存储类型的相互转换。
- 以下代码用于将Object的存储类型从标准或低频访问转换为归档类型:
# -*- coding: utf-8 -*- import oss2 import os # 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。 auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>') # Endpoint以杭州为例,其它Region请按实际情况填写。本示例中的Bucket与Object需提前创建好, 且Object类型为标准或低频访问存储类型。 bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<yourBucketName>') object_name = '<yourObjectName>' # 添加存储类型header,此处以更改文件存储类型为归档类型为例。 headers = {'x-oss-storage-class': oss2.BUCKET_STORAGE_CLASS_ARCHIVE} # 更改文件存储类型。 bucket.copy_object(bucket.bucket_name, object_name, object_name, headers)
- 以下代码用于将Object的存储类型从归档转换为低频访问类型:
# -*- coding: utf-8 -*- import oss2 import os import time # 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。 auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>') # Endpoint以杭州为例,其它Region请按实际情况填写。本示例中的Bucket与Object需提前创建好, 且Object类型为归档存储类型。 bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<yourBucketName>') object_name = '<yourObjectName>' # 获取文件元信息。 meta = bucket.head_object(object_name) # 查看文件存储类型是否为归档类型。如果是,则需要先解冻才能修改文件存储类型。解冻时间预计1分钟。 if meta.resp.headers['x-oss-storage-class'] == oss2.BUCKET_STORAGE_CLASS_ARCHIVE: bucket.restore_object(object_name) while True: meta = bucket.head_object(object_name) if meta.resp.headers['x-oss-restore'] == 'ongoing-request="true"': time.sleep(5) else: break # 添加存储类型header,此处以更改文件存储类型为低频访问类型为例。 headers = {'x-oss-storage-class': oss2.BUCKET_STORAGE_CLASS_IA} # 更改文件存储类型。 bucket.copy_object(bucket.bucket_name, object_name, object_name, headers)
各种存储类型的存储费用介绍,请参见计量项和计费项的概述一节。