开发者社区> CodeSample> 正文

转换文件存储类型

简介: OSS提供标准、低频访问、归档三种存储类型,全面覆盖从热到冷的各种数据存储场景。本文主要介绍如何转换文件(Object)的存储类型。

有关标准存储、低频访问、归档存储三种存储类型的更多信息,请参考开发指南的存储类型介绍存储类型转换

以下提供了详细的示例代码用于Object存储类型的相互转换。
  • 以下代码用于将Object的存储类型从标准或低频访问转换为归档类型:
    # -*- coding: utf-8 -*-
    import oss2
    import os
    
    # 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建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访问或日常运维,请登录 https://ram.console.aliyun.com 创建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)

各种存储类型的存储费用介绍,请参考计量项和计费项的存储费用一节。

分享:
若有任何问题或疑惑,请反馈给我们 立即提问

阿里云存储基于飞天盘古2.0分布式存储系统,产品多种多样,充分满足用户数据存储和迁移上云需求。

官方博客
最新文章
相关文章
存储产品
客户案例