详情页标题前

阿里云对象存储OSSPython转换文件存储类型-云淘科技

详情页1

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

注意事项

  • 本文以华东1(杭州)外网Endpoint为例。如果您希望通过与OSS同地域的其他阿里云产品访问OSS,请使用内网Endpoint。关于OSS支持的Region与Endpoint的对应关系,请参见访问域名和数据中心。
  • 本文以从环境变量读取访问凭证为例。如何配置访问凭证,请参见Python配置访问凭证。

  • 本文以OSS域名新建OSSClient为例。如果您希望通过自定义域名、STS等方式新建OSSClient,请参见Python初始化。
  • 要转换文件存储类型,您必须具有oss:GetObjectoss:PutObjectoss:RestoreObject权限。具体操作,请参见为RAM用户授权自定义的权限策略。

示例代码

重要

当低频访问、归档、冷归档或者深度冷归档存储类型Object在存储不足规定时长时转换了存储类型或者提前删除时,需要收取不足规定时长容量费用。更多信息,请参见Object在存储不足规定时长时如何计费?。

将标准或低频访问转换为归档、冷归档或者深度冷归档类型

以下代码用于将Object的存储类型从标准或低频访问转换为归档、冷归档或者深度冷归档类型。

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
import os
# 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())

# Endpoint以杭州为例,其它Region请按实际情况填写。
# 填写Bucket名称,例如examplebucket。
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'examplebucket')
# 填写Object的完整路径,完整路径中不能包含Bucket名称,例如exampledir/exampleobject.txt。
# 需确保该Object的存储类型为标准存储或低频访问类型。
object_name = 'exampledir/exampleobject.txt'

# 通过添加存储类型Header,将Object存储类型转换为归档类型。
headers = {'x-oss-storage-class': oss2.BUCKET_STORAGE_CLASS_ARCHIVE}
# 通过添加存储类型Header,将Object存储类型转换为冷归档类型。
# headers = {'x-oss-storage-class': oss2.BUCKET_STORAGE_CLASS_COLD_ARCHIVE}
# 通过添加存储类型Header,将Object存储类型转换为深度冷归档类型。
# headers = {'x-oss-storage-class': oss2.BUCKET_STORAGE_CLASS_DEEP_COLD_ARCHIVE}
# 更改文件存储类型。
bucket.copy_object(bucket.bucket_name, object_name, object_name, headers)                    

将归档类型转换为标准或低频访问类型

以下代码用于将Object的存储类型从归档类型转换为标准或低频访问类型。

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
import os
import time
# 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())

# Endpoint以杭州为例,其它Region请按实际情况填写。
# 填写Bucket名称,例如examplebucket。
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'examplebucket')
# 填写Object的完整路径,完整路径中不能包含Bucket名称,例如exampledir/exampleobject.txt。
# 需确保该Object的存储类型为归档类型。
object_name = 'exampledir/exampleobject.txt'

# 获取文件元信息。
meta = bucket.head_object(object_name)

# 解冻文件。根据解冻文件的大小,实际解冻时间可能会有变化,请以实际解冻时间为准。
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,将Object存储类型转换为标准类型。
headers = {'x-oss-storage-class': oss2.BUCKET_STORAGE_CLASS_STANDARD}
# 通过添加存储类型Header,将Object存储类型转换为低频访问类型。
# headers = {'x-oss-storage-class': oss2.BUCKET_STORAGE_CLASS_IA}

# 更改文件存储类型。
bucket.copy_object(bucket.bucket_name, object_name, object_name, headers)

将冷归档类型转换为标准或低频访问类型

以下代码用于将Object的存储类型从冷归档类型转换为标准或低频访问类型。

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
import os
import time
from oss2.models import RESTORE_TIER_EXPEDITED, RestoreJobParameters

# 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())

# Endpoint以杭州为例,其它Region请按实际情况填写。
# 填写Bucket名称,例如examplebucket。
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'examplebucket')
# 填写Object的完整路径,完整路径中不能包含Bucket名称,例如exampledir/exampleobject.txt。
# 需确保该Object的存储类型为冷归档类型。
object_name = 'exampledir/exampleobject.txt'

# 获取文件元信息。
meta = bucket.head_object(object_name)

# 解冻文件。
if meta.resp.headers['x-oss-storage-class'] == oss2.BUCKET_STORAGE_CLASS_COLD_ARCHIVE:
    # 设置解冻优先级。RESTORE_TIER_EXPEDITED表示1小时内解冻完成。
    job_parameters = RestoreJobParameters(RESTORE_TIER_EXPEDITED)
    # days用于设置Object解冻完成后保持解冻状态的天数。
    restore_config = oss2.models.RestoreConfiguration(days=5, job_parameters=job_parameters)
    # bucket.restore_object(object_name, input=restore_config)
    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,将Object存储类型转换为标准类型。
headers = {'x-oss-storage-class': oss2.BUCKET_STORAGE_CLASS_STANDARD}
# 通过添加存储类型Header,将Object存储类型转换为低频访问类型。
# headers = {'x-oss-storage-class': oss2.BUCKET_STORAGE_CLASS_IA}

# 更改文件存储类型。
bucket.copy_object(bucket.bucket_name, object_name, object_name, headers)

相关文档

关于转换文件存储类型的API接口说明,请参见CopyObject。

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/158208.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

  • 阿里云人工智能平台PAIUpdateServiceAutoScaler – 更新服务自动扩缩容配置-云淘科技

    修改服务已有的自动扩缩控制器配置。 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。 调试调试授权信息下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下: 操…

    阿里云人工智能平台PAI 2023年12月10日
  • 阿里云对象存储OSS0048-00000106-云淘科技

    问题描述 使用浏览器通过OSS传输加速域名访问文件时,可能会出现无法预览而是直接下载的现象。 问题原因 在2020/11/17 11:07之后开通传输加速的Bucket,使用OSS传输加速域名访问任意文件,OSS会在返回头中增加两个Header: x-oss-force-download:true Content-Disposition: attachmen…

    阿里云对象存储 2023年12月10日
  • 阿里云对象存储OSSJava存储空间清单-云淘科技

    本文介绍如何添加、查看、批量列举和删除存储空间(Bucket)的清单(Inventory)配置。 注意事项 本文以华东1(杭州)外网Endpoint为例。如果您希望通过与OSS同地域的其他阿里云产品访问OSS,请使用内网Endpoint。关于OSS支持的Region与Endpoint的对应关系,请参见访问域名和数据中心。 本文以从环境变量读取访问凭证为例。如…

    阿里云对象存储 2023年12月10日
  • 阿里云对象存储OSS通过Jindo CLI命令访问OSS-HDFS服务-云淘科技

    本文为您介绍如何通过Jindo CLI命令访问OSS-HDFS服务。 环境准备 EMR环境中,默认已安装JindoSDK,可以直接使用。说明 访问OSS-HDFS服务,需创建EMR-3.44.0及以上版本或EMR-5.10.0及以上版本的集群。 非EMR环境,请先安装部署JindoSDK,详情请参见在非EMR集群中部署JindoSDK。说明 访问OSS-HD…

    阿里云对象存储 2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云RDS数据库申请或释放外网地址-云淘科技

    RDS支持内网地址和外网地址两种地址类型,默认提供内网地址供您内部访问RDS实例,如果需要外网访问,您需要申请外网地址。 内网地址和外网地址 地址类型 说明 内网地址 默认提供内网地址,无需申请,无法释放,可以切换网络类型。 如果您的应用部署在ECS实例,且该ECS实例与RDS实例在同一地域,且网络类型相同,则RDS实例与ECS实例可以通过内网互通,无需申请…

    阿里云数据库 2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。