详情页标题前

阿里云对象存储OSSPython对象标签和生命周期管理-云淘科技

详情页1

生命周期规则可针对前缀或对象标签生效,您也可以同时指定两者作为生命周期规则生效的条件。

说明

标签条件中标签的Key和Value必须同时匹配。同一个规则中,如果同时配置了前缀和多个对象标签,则只有同时满足前缀且匹配规则中所有对象标签的对象(Object),才视为适用于该规则。

注意事项

  • 本文以华东1(杭州)外网Endpoint为例。如果您希望通过与OSS同地域的其他阿里云产品访问OSS,请使用内网Endpoint。关于OSS支持的Region与Endpoint的对应关系,请参见访问域名和数据中心。
  • 本文以OSS域名新建OSSClient为例。如果您希望通过自定义域名、STS等方式新建OSSClient,请参见Python初始化。

生命周期规则中添加标签匹配规则

以下代码用于在生命周期规则中添加标签匹配规则。

# -*- coding: utf-8 -*-
import oss2
import datetime
from oss2.models import (LifecycleExpiration, LifecycleRule, 
                        BucketLifecycle,AbortMultipartUpload, 
                        TaggingRule, Tagging, StorageTransition)
from oss2.credentials import EnvironmentVariableCredentialsProvider

# 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
# 填写Bucket名称。
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'examplebucket')

# 设置Object过期规则,距最后修改时间3天后过期。
# 设置过期规则名称和Object的匹配前缀。
rule1 = LifecycleRule('rule1', 'tests/',
                      # 启用过期规则。
                      status=LifecycleRule.ENABLED,
                      # 设置过期规则为距最后修改时间3天后过期。
                      expiration=LifecycleExpiration(days=3))

# 设置Object过期规则,指定日期之前创建的文件过期。
# 设置过期规则名称和Object的匹配前缀。
rule2 = LifecycleRule('rule2', 'logging-',
                      # 不启用过期规则。
                      status=LifecycleRule.DISABLED,
                      # 设置过期规则为指定日期之前创建的文件过期。
                      expiration=LifecycleExpiration(created_before_date=datetime.date(2018, 12, 12)))

# 设置分片过期规则,分片3天后过期。
rule3 = LifecycleRule('rule3', 'tests1/',
                      status=LifecycleRule.ENABLED,
                      abort_multipart_upload=AbortMultipartUpload(days=3))

# 设置分片过期规则,指定日期之前的分片过期。
rule4 = LifecycleRule('rule4', 'logging1-',
                      status=LifecycleRule.DISABLED,
                      abort_multipart_upload = AbortMultipartUpload(created_before_date=datetime.date(2018, 12, 12)))

# 设置Object的匹配标签。
tagging_rule = TaggingRule()
tagging_rule.add('key1', 'value1')
tagging_rule.add('key2', 'value2')
tagging = Tagging(tagging_rule)

# 设置转储规则,最后修改时间超过365天后转为归档存储(ARCHIVE)。 
# rule5中指定了Object的匹配标签,只有同时拥有key1=value1和key2=value2两个标签的Object才会匹配此规则。
rule5 = LifecycleRule('rule5', 'logging2-',
                      status=LifecycleRule.ENABLED,
                      storage_transitions=[StorageTransition(days=365, storage_class=oss2.BUCKET_STORAGE_CLASS_ARCHIVE)],
                      tagging = tagging)

lifecycle = BucketLifecycle([rule1, rule2, rule3, rule4, rule5])

bucket.put_bucket_lifecycle(lifecycle)

查看生命周期规则中匹配的标签信息

以下代码用于查看生命周期规则中匹配的标签信息。

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider

# 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
# 填写Bucket名称。
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'examplebucket')

# 查看生命周期规则。
lifecycle = bucket.get_bucket_lifecycle()

for rule in lifecycle.rules:
    # 查看分片过期规则。
    if rule.abort_multipart_upload is not None:
        print('id={0}, prefix={1}, tagging={2}, status={3}, days={4}, created_before_date={5}'
                .format(rule.id, rule.prefix, rule.tagging, rule.status,
                    rule.abort_multipart_upload.days,
                    rule.abort_multipart_upload.created_before_date))

    # 查看Object过期规则。
    if rule.expiration is not None:
        print('id={0}, prefix={1}, tagging={2}, status={3}, days={4}, created_before_date={5}'
                .format(rule.id, rule.prefix, rule.tagging, rule.status,
                    rule.expiration.days,
                    rule.expiration.created_before_date))
    # 查看转储规则。
    if len(rule.storage_transitions) > 0: 
        storage_trans_info = ''
        for storage_rule in rule.storage_transitions:
            storage_trans_info += 'days={0}, created_before_date={1}, storage_class={2} **** '.format(
                storage_rule.days, storage_rule.created_before_date, storage_rule.storage_class)

        print('id={0}, prefix={1}, tagging={2}, status={3},, StorageTransition={4}'
                .format(rule.id, rule.prefix, rule.tagging, rule.status, storage_trans_info))

相关文档

  • 关于生命周期规则的完整示例代码,请参见GitHub示例。

  • 关于设置生命周期规则的API接口说明,请参见PutBucketLifecycle。

  • 关于查看生命周期规则的API接口说明,请参见GetBucketLifecycle。

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

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

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

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

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

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

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

相关推荐

  • 阿里云容器服务ACK搭建Spark应用-云淘科技

    本文介绍如何使用阿里云ACK Serverless集群和弹性容器实例(ECI),快速搭建Spark应用。 背景信息 Apache Spark是一个在数据分析领域广泛使用的开源项目,它常被应用于众所周知的大数据和机器学习工作负载中。从Apache Spark 2.3.0版本开始,您可以在Kubernetes上运行和管理Spark资源。 Spark Operat…

    2023年12月10日
  • 阿里云人工智能平台PAI通用图像预测-云淘科技

    对于图像训练类组件(例如图像分类训练、图像检测训练、图像分割训练、图像自监督训练、端到端文字识别训练组件)输出的模型,您可以使用通用图像预测组件对该模型进行离线推理,从而对输入数据进行相关预测。本文介绍通用图像预测组件的配置方法及使用示例。 前提条件 已开通OSS并完成授权,详情请参见开通OSS服务和为PAI-Studio授予OSS访问权限。 使用限制 仅P…

    2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云对象存储OSSNode.js生命周期-云淘科技

    OSS支持设置Bucket生命周期(Lifecycle)规则,自动删除过期的文件(Object)和碎片,或将到期的文件转储为低频或归档存储类型,从而节省存储费用。本文介绍如何管理存储空间(Bucket)的生命周期规则。 设置生命周期规则 以下代码用于设置生命周期规则。 const OSS = require(‘ali-oss’) const client =…

    阿里云对象存储 2023年12月10日
  • 阿里云ECS云服务器UntagResources-云淘科技

    调用UntagResources为指定的EBS资源统一解绑标签。 接口说明 每次解绑的标签数量不能超过20个。 任一标签在解绑后,如果没有绑定任何实例,则该标签会被删除。 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。 请求参数 名称 类型 是否必…

    阿里云服务器 2023年12月9日
  • 阿里云对象存储OSS0048-00000101-云淘科技

    问题描述 使用浏览器通过OSS标准域名访问文件时,可能会出现无法预览而是直接下载的现象。 问题原因 在2019/09/24 11:00之后创建的Bucket,使用OSS域名访问文件,且文件的ContentType属于以下类型之一时, image/jpeg image/gif image/tiff image/png image/webp image/svg+…

    阿里云对象存储 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

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