更新时间:2026-07-01 GMT+08:00
设置对象过期时间(Python SDK)
本示例用于上传文件流时通过header设置对象过期时间
import os
import traceback
from obs import ObsClient, PutObjectHeader
# 推荐通过环境变量获取AK/SK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险
# 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html
ak = os.getenv("AccessKeyID")
sk = os.getenv("SecretAccessKey")
# server填写Bucket对应的Endpoint,这里以华北-北京四为例,其他地区请按实际情况填写
server = "https://your-endpoint"
# 读取文件流
content = open('localfile', 'rb')
bucket_name = "examplebucket"
object_key = "objectname"
header = PutObjectHeader()
#设置对象过期删除时间
header.expires=10
# 流式上传
resp = obs_client.putContent(bucket_name, object_key, content,headers=header)
# 返回码为2xx时,接口调用成功,否则接口调用失败
if resp.status < 300:
print('Put Content Succeeded')
print('requestId:', resp.requestId)
else:
print('Put Content Failed')
print('requestId:', resp.requestId)
print('errorCode:', resp.errorCode)
print('errorMessage:', resp.errorMessage)
except Exception:
print(traceback.format_exc()) 本示例用于上传文件流时通过自定义头域设置对象过期时间
import os
import traceback
from obs import ObsClient
# 推荐通过环境变量获取AK/SK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险
# 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html
ak = os.getenv("AccessKeyID")
sk = os.getenv("SecretAccessKey")
# server填写Bucket对应的Endpoint,这里以华北-北京四为例,其他地区请按实际情况填写
server = "https://your-endpoint"
obs_client = ObsClient(access_key_id=ak, secret_access_key=sk, server=server)
try:
# 读取文件流
content = open('localfile', 'rb')
bucket_name = "examplebucket"
object_key = "objectname"
header = PutObjectHeader()
# 自定义头域设置对象过期删除时间
extension_headers = {'x-obs-expires': 30}
# 流式上传
resp = obs_client.putContent(bucket_name, object_key, content,extensionHeaders=extension_headers)
# 返回码为2xx时,接口调用成功,否则接口调用失败
if resp.status < 300:
print('Put Content Succeeded')
print('requestId:', resp.requestId)
else:
print('Put Content Failed')
print('requestId:', resp.requestId)
print('errorCode:', resp.errorCode)
print('errorMessage:', resp.errorMessage)
except Exception:
print(traceback.format_exc()) 本示例用于设置已上传对象的过期时间
import os
import traceback
from obs import ObsClient
# 推荐通过环境变量获取AK/SK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险
# 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html
ak = os.getenv("AccessKeyID")
sk = os.getenv("SecretAccessKey")
# server填写Bucket对应的Endpoint,这里以华北-北京四为例,其他地区请按实际情况填写
server = "https://your-endpoint"
obs_client = ObsClient(access_key_id=ak, secret_access_key=sk, server=server)
try:
bucket_name = "examplebucket"
object_key = "objectname"
# 自定义头域设置对象过期删除时间
extension_headers = {'x-obs-expires': 30}
# 设置对象元数据
resp = obs_client.setObjectMetadata(bucket_name, object_key, extensionHeaders=extension_headers)
# 返回码为2xx时,接口调用成功,否则接口调用失败
if resp.status < 300:
print('Set Object Metadata Succeeded')
print('requestId:', resp.requestId)
else:
print('Set Object Metadata Failed')
print('requestId:', resp.requestId)
print('errorCode:', resp.errorCode)
print('errorMessage:', resp.errorMessage)
except Exception:
print(traceback.format_exc()) 父主题: 常见问题(Python SDK)