最近更新时间:2025-09-29 15:54:26
以下代码用于开启/关闭回收站:
from ks3.connection import Connection
from ks3.xmlParsers.bucketRetention import BucketRetention, Rule as BucketRetentionRule
# 金山云主账号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>')
# 初始化回收站规则
rule = BucketRetentionRule()
# 启用回收站
rule.status = BucketRetentionRule.ENABLED
# 禁用回收站
# rule.status = BucketRetentionRule.DISABLED
# 设置回收站内文件保留天数
rule.days = 7
bucket_retention = BucketRetention()
bucket_retention.rule = rule
ret = b.set_bucket_retention(bucket_retention)
print("set_bucket_retention, request_id: ", ret.response_metadata.request_id)以下代码用于获取回收站规则:
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>')
ret = b.get_bucket_retention()
print(ret.to_xml())
print("get_bucket_retention, request_id: ", ret.response_metadata.request_id)以下代码用于列举回收站中的文件:
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>')
# 以前缀prefix为a来举例
keys = b.list_retention(prefix='a')
for k in keys:
print(k.name)
print(k.retention_id)
print(k.storage_class)以下代码用于恢复回收站中的文件:
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>')
k = b.get_key('<your_key_name>')
# overwrite: 桶中存在同名文件时的覆盖策略,True:直接覆盖,恢复成功;False:进行冲突报错,恢复失败
ret = k.recover_object(overwrite=True, retention_id='<YOUR_RETENTION_ID>')
print("recover_object, request_id: ", ret.response_metadata.request_id)以下代码用于删除回收站中的文件:
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>')
k = b.get_key('<your_key_name>')
ret = k.clear_object(retention_id='<YOUR_RETENTION_ID>')
print("clear_object, request_id: ", ret.response_metadata.request_id)
纯净模式
