对象存储服务 OBS-生成带授权信息的表单上传参数(Python SDK):代码样例

时间:2025-02-12 15:00:46

代码样例

此用例用于生成带授权信息的表单上传参数policy和signature。

 1 2 3 4 5 6 7 8 9101112131415161718192021222324252627282930
from obs import ObsClientimport osimport traceback# 推荐通过环境变量获取AKSK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险# 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.htmlak = os.getenv("AccessKeyID")sk = os.getenv("SecretAccessKey")# 【可选】如果使用临时AKSK和SecurityToken访问OBS,则同样推荐通过环境变量获取# security_token = os.getenv("SecurityToken")# server填写Bucket对应的Endpoint, 这里以华北-北京四为例,其他地区请按实际情况填写server = "https://obs.cn-north-4.myhuaweicloud.com"# 创建obsClient实例# 如果使用临时AKSK和SecurityToken访问OBS,需要在创建实例时通过security_token参数指定securityToken值obsClient = ObsClient(access_key_id=ak, secret_access_key=sk, server=server)try:    bucketName = "examplebucket"    objectKey = "objectname"    # 设置表单上传请求有效期,单位:秒,此处以3600秒为例    expires = 3600    # 除key,policy,signature外,表单上传时的其他参数,此处设置acl为私有、content-type为text/plain    formParams = {'x-obs-acl': 'private', 'content-type': 'text/plain'}    # 生成带授权信息的表单上传参数    resp = obsClient.createPostSignature(bucketName, objectKey, expires, formParams)    print('originPolicy:', resp.originPolicy)    print('policy:', resp.policy)    print('signature:', resp.signature)except:    print(traceback.format_exc())
support.huaweicloud.com/sdk-python-devg-obs/obs_22_1302.html