全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

管理存储空间生命周期规则(Python)

最近更新时间:2025-06-11 14:16:01

设置生命周期规则

以下代码用于设置生命周期规则:

from ks3.connection import Connection
from datetime import datetime

# 金山云主账号AccessKey拥有所有API的访问权限,风险很高。
# 强烈建议您创建并使用子账号账号进行API访问或日常运维,请登录https://uc.console.ksyun.com/pro/iam/#/user/list创建子账号。
# 通过指定host(Endpoint),您可以在指定的地域创建新的存储空间。
c = Connection('<YOUR_ACCESS_KEY>', '<YOUR_SECRET_KEY>', host='<YOUR_REGION_ENDPOINT>')

# 获取存储空间实例
b = c.get_bucket('<YOUR_BUCKET_NAME>')

from ks3.xmlParsers.bucketLifecycle import BucketLifecycle, Rule as LifecycleRule, Filter as LifecycleFilter, \
    Expiration as LifecycleExpiration, Transition as LifecycleTransition, AbortIncompleteMultipartUpload
from ks3.objectTagging import Tag

tag = Tag(key="tag1", value="test1")
# 筛选前缀为prefix1、标签为tag1:test1的objects,设置过期规则,在其最后修改时间3天后过期。
rule1 = LifecycleRule('rule1', LifecycleFilter('prefix1', tags=[tag]),
                      status='Enabled',
                      expiration=LifecycleExpiration(days=3))

# 设置过期规则,筛选标签为tag1:test1 的objects,最后修改时间在指定日期之前的,过期
rule2 = LifecycleRule('rule2', LifecycleFilter(tags=[tag]),
                      status='Enabled',
                      expiration=LifecycleExpiration(
                          date=datetime(2021, 12, 12).isoformat(timespec='seconds') + '+08:00'))

# 设置存储类型转换规则,筛选前缀为prefix3的objects,在其最后修改时间20天之后转为低频访问类型,在其最后修改时间30天之后转为归档类型。
rule3 = LifecycleRule('rule3', LifecycleFilter('prefix3'),
                      status='Enabled',
                      transitions=[LifecycleTransition(days=20, storage_class='STANDARD_IA'),
                                   LifecycleTransition(days=60, storage_class='ARCHIVE')])

# 设置存储类型转换规则,筛选前缀为prefix4的objects,最后修改时间在指定日期之前的,转为低频访问类型
rule4 = LifecycleRule('rule4', LifecycleFilter('prefix4'),
                      status='Enabled',
                      transitions=[
                          LifecycleTransition(date=datetime(2021, 12, 12).isoformat(timespec='seconds') + '+08:00',
                                              storage_class='STANDARD_IA')])

# 设置分片上传碎片清理规则,筛选前缀为prefix5的part,在最后修改时间7天后删除
rule5 = LifecycleRule('rule5', LifecycleFilter('prefix5'),
                      status='Enabled',
                      abort_incomplete_multipart_upload=AbortIncompleteMultipartUpload(days_after_initiation=7))
# 设置分片上传碎片清理规则,筛选前缀为prefix5的part,文件碎片生成时间早于指定日期的,文件碎片删除。
# rule5 = LifecycleRule('rule5', LifecycleFilter('prefix5'),
#                       status='Enabled',
#                       abort_incomplete_multipart_upload=AbortIncompleteMultipartUpload(date=datetime(2021, 12, 12).isoformat(timespec='seconds') + '+08:00'))
lifecycle = BucketLifecycle([rule1, rule2, rule3, rule4, rule5])
# 设置生命周期规则
ret = b.set_bucket_lifecycle(lifecycle)
print("set_bucket_lifecycle, request_id: ", ret.response_metadata.request_id)

有关设置生命周期相关API,请参见Put Bucket Lifecycle

查看生命周期规则

from ks3.connection import Connection

# 金山云主账号AccessKey拥有所有API的访问权限,风险很高。
# 强烈建议您创建并使用子账号账号进行API访问或日常运维,请登录https://uc.console.ksyun.com/pro/iam/#/user/list创建子账号。
# 通过指定host(Endpoint),您可以在指定的地域创建新的存储空间。
c = Connection('<YOUR_ACCESS_KEY>', '<YOUR_SECRET_KEY>', host='<YOUR_REGION_ENDPOINT>')

# 获取存储空间实例
b = c.get_bucket('<YOUR_BUCKET_NAME>')

# 查看生命周期规则
lifecycle = b.get_bucket_lifecycle()
print("get_bucket_lifecycle, request_id: ", lifecycle.response_metadata.request_id)
print(lifecycle.to_xml())

有关查看生命周期规则相关API,请参见Get Bucket Lifecycle

删除生命周期规则

from ks3.connection import Connection

# 金山云主账号AccessKey拥有所有API的访问权限,风险很高。
# 强烈建议您创建并使用子账号账号进行API访问或日常运维,请登录https://uc.console.ksyun.com/pro/iam/#/user/list创建子账号。
# 通过指定host(Endpoint),您可以在指定的地域创建新的存储空间。
c = Connection('<YOUR_ACCESS_KEY>', '<YOUR_SECRET_KEY>', host='<YOUR_REGION_ENDPOINT>')

# 获取存储空间实例
b = c.get_bucket('<YOUR_BUCKET_NAME>')

# 删除生命周期规则
resp = b.delete_bucket_lifecycle()
print("delete_bucket_lifecycle, request_id: ", resp.response_metadata.request_id)

有关删除生命周期规则相关API,请参见Delete Bucket Lifecycle

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈