# -*- coding=utf-8 from qcloud_cos import CosConfig from qcloud_cos import CosS3Client import sys import os import logging # 正常情况日志级别使用 INFO,需要定位时可以修改为 DEBUG,此时 SDK 会打印和服务端的通信信息 logging.basicConfig(level=logging.INFO, stream=sys.stdout) # 1. 设置用户属性, 包括 secret_id, secret_key, region等。Appid 已在 CosConfig 中移除,请在参数 Bucket 中带上 Appid。Bucket 由 BucketName-Appid 组成 secret_id = 'AKIDDIBrNhoiOtBF5rcEdoBRUKwU2Rj2OgxA' # 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140 secret_key = '5wkKhttgYQD2iEZgaInEVYVPCo2BJK9l' # 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140 region = 'ap-beijing' #'ap-guangzhou' # 替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket # COS 支持的所有 region 列表参见 https://cloud.tencent.com/document/product/436/6224 token = None # 如果使用永久密钥不需要填入 token,如果使用临时密钥需要填入,临时密钥生成和使用指引参见 https://cloud.tencent.com/document/product/436/14048 scheme = 'https' # 指定使用 http/https 协议来访问 COS,默认为 https,可不填 config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme) client = CosS3Client(config) #### 文件流简单上传(不支持超过5G的文件,推荐使用下方高级上传接口) # 强烈建议您以二进制模式(binary mode)打开文件,否则可能会导致错误 with open('out_image.png', 'rb') as fp: response = client.put_object( Bucket='b-1304254135', Body=fp, Key='out_image.png', StorageClass='STANDARD', EnableMD5=False ) print(response['ETag']) #### 获取文件到本地 response = client.get_object( Bucket='b-1304254135', Key='out_image.png' ) response['Body'].get_stream_to_file('cos_girl.png')