文档首页/对象存储服务 OBS/SDK参考/Python/对象相关接口(Python SDK)/基础操作(Python SDK)/下载对象(Python SDK)/下载对象-图片处理(Python SDK)
更新时间:2026-04-08 GMT+08:00
下载对象-图片处理(Python SDK)
代码样例一:生成带授权信息的下载URL
本示例用于生成图片处理的带授权信息的URL。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | from obs import ObsClient import os import traceback # 推荐通过环境变量获取AKSK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险 # 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html ak = 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 = 'originBucketName' # 对象名 objectKey = 'test.png' queryParams = {"x-image-process": "image/resize,w_100"} # 生成图片处理的带授权信息的URL res = obsClient.createSignedUrl(method='GET', bucketName=bucketName, objectKey=objectKey, queryParams=queryParams, expires=3600) print('signedUrl:', res.signedUrl) except: print(traceback.format_exc()) |
代码样例二:断点续传下载
本示例用于在断点续传下载时进行图片处理。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | from obs import ObsClient import os import traceback # 推荐通过环境变量获取AKSK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险 # 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html ak = 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 = "example.png" # 下载到本地的路径,包含本地文件名称的全路径 downloadFile = './example.png' # 分段下载的并发数 taskNum = 3 # 分段的大小 partSize = 5 * 1024 * 1024 # True表示开启断点续传 enableCheckpoint = True # 图片处理参数 imageProcess = "image/resize,w_100" # 断点续传下载对象 resp = obsClient.downloadFile(bucketName, objectkey, downloadFile, partSize, taskNum, imageProcess=imageProcess) # 返回码为2xx时,接口调用成功,否则接口调用失败 if resp.status < 300: print('Download File Succeeded') print('requestId:', resp.requestId) else: print('Download File Failed') print('requestId:', resp.requestId) print('errorCode:', resp.errorCode) print('errorMessage:', resp.errorMessage) except: print('Download File Failed') print(traceback.format_exc()) |
父主题:下载对象(Python SDK)

