API | 操作名 | 操作描述 |
简单上传对象 | 上传一个对象至存储桶 | |
追加上传对象 | 将对象以分块追加的方式上传至存储桶 |
API | 操作名 | 操作描述 |
查询分块上传 | 查询正在进行中的分块上传信息 | |
初始化分块上传 | 初始化分块上传任务 | |
上传分块 | 分块上传文件 | |
复制分块 | 将其他对象复制为一个分块 | |
查询已上传块 | 查询特定分块上传操作中的已上传的块 | |
完成分块上传 | 完成整个文件的分块上传 | |
终止分块上传 | 终止一个分块上传操作并删除已上传的块 |
upload_file(Bucket, Key, LocalFilePath, PartSize=1, MAXThread=5, EnableMD5=False, progress_callback=None, **kwargs)
# -*- coding=utf-8from qcloud_cos import CosConfigfrom qcloud_cos import CosS3Clientfrom qcloud_cos.cos_exception import CosClientError, CosServiceErrorimport sysimport osimport 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 = os.environ['COS_SECRET_ID'] # 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/32675secret_key = os.environ['COS_SECRET_KEY'] # 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/32675region = 'ap-beijing' # 替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.tencentcloud.com/cos5/bucket# COS 支持的所有 region 列表参见 https://www.tencentcloud.com/document/product/436/6224token = None # 如果使用永久密钥不需要填入 token,如果使用临时密钥需要填入,临时密钥生成和使用指引参见 https://www.tencentcloud.com/document/product/436/14048scheme = 'https' # 指定使用 http/https 协议来访问 COS,默认为 https,可不填config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)client = CosS3Client(config)# 使用高级接口上传一次,不重试,此时没有使用断点续传的功能response = client.upload_file(Bucket='examplebucket-1250000000',Key='exampleobject',LocalFilePath='local.txt',EnableMD5=False,progress_callback=None)# 使用高级接口断点续传,失败重试时不会上传已成功的分块(这里重试10次)for i in range(0, 10):try:response = client.upload_file(Bucket='examplebucket-1250000000',Key='exampleobject',LocalFilePath='local.txt')breakexcept CosClientError or CosServiceError as e:print(e)
def upload_percentage(consumed_bytes, total_bytes):"""进度条回调函数,计算当前上传的百分比:param consumed_bytes: 已经上传的数据量:param total_bytes: 总数据量"""if total_bytes:rate = int(100 * (float(consumed_bytes) / float(total_bytes)))print('\\r{0}% '.format(rate))sys.stdout.flush()response = client.upload_file(Bucket='examplebucket-1250000000',Key='exampleobject',LocalFilePath='local.txt',PartSize=1,MAXThread=5,progress_callback=upload_percentage,EnableMD5=False|True,ACL='private'|'public-read', # 请慎用此参数,否则会达到1000条ACL 上限GrantFullControl='string',GrantRead='string',StorageClass='STANDARD'|'STANDARD_IA'|'ARCHIVE',Expires='string',CacheControl='string',ContentType='string',ContentDisposition='string',ContentEncoding='string',ContentLanguage='string',ContentLength='123',ContentMD5='string',Metadata={'x-cos-meta-key1': 'value1','x-cos-meta-key2': 'value2'},TrafficLimit='1048576')
参数名称 | 参数描述 | 类型 | 是否必填 |
Bucket | 存储桶名称,由 BucketName-APPID 构成 | String | 是 |
Key | 对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg 中,对象键为 doc/pic.jpg | String | 是 |
LocalFilePath | 本地文件的路径名 | String | 是 |
PartSize | 分块上传的分块大小,默认为1MB | Int | 否 |
MAXThread | 分块上传的并发数量,默认为5个线程上传分块 | Int | 否 |
progress_callback | 上传进度的回调函数,可以通过自定义此函数,来获取上传进度 | Func | 否 |
EnableMD5 | 是否需要 SDK 计算 Content-MD5,默认关闭,打开后会增加上传耗时 | Bool | 否 |
ACL | 设置对象的 ACL,例如 private,public-read | String | 否 |
GrantFullControl | 赋予被授权者所有的权限,格式为 id="OwnerUin" ,例如 id="100000000001" | String | 否 |
ContentType | 内容类型,设置 Content-Type | String | 否 |
GrantRead | 赋予被授权者读的权限,格式为 id="OwnerUin" ,例如 id="100000000001" | String | 否 |
StorageClass | String | 否 | |
Expires | 设置 Expires | String | 否 |
CacheControl | 缓存策略,设置 Cache-Control | String | 否 |
ContentDisposition | 文件名称,设置 Content-Disposition | String | 否 |
ContentEncoding | 编码格式,设置 Content-Encoding | String | 否 |
ContentLanguage | 语言类型,设置 Content-Language | String | 否 |
ContentLength | 设置传输长度 | String | 否 |
ContentMD5 | 设置上传对象的 MD5 值用于校验 | String | 否 |
Metadata | 用户自定义的对象元数据 | Dict | 否 |
TrafficLimit | 单链接限速的值,单位为bit/s,限速值设置范围为819200 - 838860800,即100KB/s - 100MB/s,高级接口限制的是单线程的速度 | String | 否 |
{'ETag': 'string''x-cos-hash-crc64ecma': 'string','x-cos-request-id': 'string','x-cos-storage-class': 'string','Location': 'string', # 触发分块上传时返回此字段'Bucket': 'string', # 触发分块上传时返回此字段'Key': 'string', # 触发分块上传时返回此字段}
参数名称 | 参数描述 | 类型 |
ETag | 分块上传时,该值不是对象内容的 MD5 校验值,仅能用于检查对象唯一性 | String |
x-cos-hash-crc64ecma | 文件的 CRC64 校验码 | String |
x-cos-request-id | 请求 ID | String |
x-cos-storage-class | 对象存储类型 | String |
Location | 对象的访问 URL (触发分块上传时返回此字段) | String |
Bucket | 存储桶名 (触发分块上传时返回此字段) | String |
Key | 对象名 (触发分块上传时返回此字段) | String |
# -*- coding=utf-8from qcloud_cos import CosConfigfrom qcloud_cos import CosS3Clientfrom qcloud_cos import CosServiceErrorfrom qcloud_cos import CosClientErrorfrom qcloud_cos.cos_threadpool import SimpleThreadPoolimport sysimport osimport logging# 正常情况日志级别使用 INFO,需要定位时可以修改为 DEBUG,此时 SDK 会打印和服务端的通信信息logging.basicConfig(level=logging.INFO, stream=sys.stdout)# 设置用户属性, 包括 secret_id, secret_key, region等。Appid 已在 CosConfig中 移除,请在参数 Bucket 中带上 Appid。Bucket 由 BucketName-Appid 组成secret_id = os.environ['COS_SECRET_ID'] # 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/32675secret_key = os.environ['COS_SECRET_KEY'] # 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/32675region = 'ap-beijing' # 替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.tencentcloud.com/cos5/bucket# COS 支持的所有 region 列表参见 https://www.tencentcloud.com/document/product/436/6224token = None # 如果使用永久密钥不需要填入 token,如果使用临时密钥需要填入,临时密钥生成和使用指引参见 https://www.tencentcloud.com/document/product/436/14048config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象client = CosS3Client(config)uploadDir = '/root/logs'bucket = 'examplebucket-125000000'g = os.walk(uploadDir)# 创建上传的线程池pool = SimpleThreadPool()for path, dir_list, file_list in g:for file_name in file_list:srcKey = os.path.join(path, file_name)cosObjectKey = srcKey.strip('/')# 判断 COS 上文件是否存在exists = Falsetry:response = client.head_object(Bucket=bucket, Key=cosObjectKey)exists = Trueexcept CosServiceError as e:if e.get_status_code() == 404:exists = Falseelse:print("Error happened, reupload it.")if not exists:print("File %s not exists in cos, upload it", srcKey)pool.add_task(client.upload_file, bucket, cosObjectKey, srcKey)pool.wait_completion()result = pool.get_result()if not result['success_all']:print("Not all files upload sucessed. you should retry")
put_object(Bucket, Body, Key, **kwargs)
# -*- coding=utf-8from qcloud_cos import CosConfigfrom qcloud_cos import CosS3Clientimport sysimport osimport 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 = os.environ['COS_SECRET_ID'] # 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/32675secret_key = os.environ['COS_SECRET_KEY'] # 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/32675region = 'ap-beijing' # 替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.tencentcloud.com/cos5/bucket# COS 支持的所有 region 列表参见https://www.tencentcloud.com/document/product/436/6224token = None # 如果使用永久密钥不需要填入 token,如果使用临时密钥需要填入,临时密钥生成和使用指引参见 https://www.tencentcloud.com/document/product/436/14048scheme = 'https' # 指定使用 http/https 协议来访问 COS,默认为 https,可不填config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)client = CosS3Client(config)# 文件流 简单上传file_name = 'test.txt'with open('test.txt', 'rb') as fp:response = client.put_object(Bucket='examplebucket-1250000000', # Bucket 由 BucketName-APPID 组成Body=fp,Key=file_name,StorageClass='STANDARD',ContentType='text/html; charset=utf-8')print(response['ETag'])# 字节流 简单上传response = client.put_object(Bucket='examplebucket-1250000000',Body=b'abcdefg',Key=file_name)print(response['ETag'])# 本地路径 简单上传response = client.put_object_from_local_file(Bucket='examplebucket-1250000000',LocalFilePath='local.txt',Key=file_name,)print(response['ETag'])# 设置 HTTP 头部 简单上传response = client.put_object(Bucket='examplebucket-1250000000',Body=b'test',Key=file_name,ContentType='text/html; charset=utf-8')print(response['ETag'])# 设置自定义头部 简单上传response = client.put_object(Bucket='examplebucket-1250000000',Body=b'test',Key=file_name,Metadata={'x-cos-meta-key1': 'value1','x-cos-meta-key2': 'value2'})print(response['ETag'])# 上传时限速with open('test.bin', 'rb') as fp:response = client.put_object(Bucket='examplebucket-1250000000',Key='exampleobject',Body=fp,TrafficLimit='819200')print(response['ETag'])
# -*- coding=utf-8from qcloud_cos import CosConfigfrom qcloud_cos import CosS3Clientimport sysimport osimport 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 = os.environ['COS_SECRET_ID'] # 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/32675secret_key = os.environ['COS_SECRET_KEY'] # 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/32675region = 'ap-beijing' # 替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.tencentcloud.com/cos5/bucket# COS 支持的所有 region 列表参见 https://www.tencentcloud.com/document/product/436/6224token = None # 如果使用永久密钥不需要填入 token,如果使用临时密钥需要填入,临时密钥生成和使用指引参见 https://www.tencentcloud.com/document/product/436/14048scheme = 'https' # 指定使用 http/https 协议来访问 COS,默认为 https,可不填config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)client = CosS3Client(config)# 创建目录dir_to_create='path/to/create/dir/'response = client.put_object(Bucket='examplebucket-1250000000', # Bucket 由 BucketName-APPID 组成Key=dir_to_create,Body=b'',)print(response)
# -*- coding=utf-8from qcloud_cos import CosConfigfrom qcloud_cos import CosS3Clientimport sysimport osimport 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 = os.environ['COS_SECRET_ID'] # 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/32675secret_key = os.environ['COS_SECRET_KEY'] # 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/32675region = 'ap-beijing' # 替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.tencentcloud.com/cos5/bucket# COS 支持的所有 region 列表参见 https://www.tencentcloud.com/document/product/436/6224token = None # 如果使用永久密钥不需要填入 token,如果使用临时密钥需要填入,临时密钥生成和使用指引参见 https://www.tencentcloud.com/document/product/436/14048scheme = 'https' # 指定使用 http/https 协议来访问 COS,默认为 https,可不填config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)client = CosS3Client(config)#上传由 '/' 分隔的对象名,自动创建包含文件的文件夹。想要在此文件夹中添加新文件时,只需要在上传文件至 COS 时,将 Key 填写为此目录前缀即可。dir_name = 'path/to/dir/'file_name = 'test.txt'object_key = dir_name + file_namewith open('test.txt', 'rb') as fp:response = client.put_object(Bucket='examplebucket-1250000000', # Bucket 由 BucketName-APPID 组成Body=fp,Key=object_key,StorageClass='STANDARD',ContentType='text/html; charset=utf-8')print(response['ETag'])
response = client.put_object(Bucket='examplebucket-1250000000',Body=b'bytes'|file,Key='exampleobject',EnableMD5=False|True,ACL='private'|'public-read', # 请慎用此参数,否则会达到1000条 ACL 上限GrantFullControl='string',GrantRead='string',StorageClass='STANDARD'|'STANDARD_IA'|'ARCHIVE',Expires='string',CacheControl='string',ContentType='string',ContentDisposition='string',ContentEncoding='string',ContentLanguage='string',ContentLength='123',ContentMD5='string',Metadata={'x-cos-meta-key1': 'value1','x-cos-meta-key2': 'value2'},TrafficLimit='1048576')
参数名称 | 参数描述 | 类型 | 是否必填 |
Bucket | 存储桶名称,由 BucketName-APPID 构成 | String | 是 |
Body | 上传对象的内容,可以为文件流或字节流 | file/bytes | 是 |
Key | 对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg 中,对象键为 doc/pic.jpg | String | 是 |
EnableMD5 | 是否需要 SDK 计算 Content-MD5,默认关闭,打开后将增加上传耗时 | Bool | 否 |
ACL | 设置对象的 ACL,例如 'private','public-read' | String | 否 |
GrantFullControl | 赋予被授权者所有的权限,格式为 id="OwnerUin" ,例如 id="100000000001" | String | 否 |
GrantRead | 赋予被授权者读的权限,格式为 id="OwnerUin" ,例如 id="100000000001" | String | 否 |
StorageClass | String | 否 | |
Expires | 设置 Expires | String | 否 |
CacheControl | 缓存策略,设置 Cache-Control | String | 否 |
ContentType | 内容类型,设置 Content-Type | String | 否 |
ContentDisposition | 对象名称,设置 Content-Disposition | String | 否 |
ContentEncoding | 编码格式,设置 Content-Encoding | String | 否 |
ContentLanguage | 语言类型,设置 Content-Language | String | 否 |
ContentLength | 设置传输长度 | String | 否 |
ContentMD5 | 设置上传对象的 MD5 值用于校验 | String | 否 |
Metadata | 用户自定义的对象元数据, 必须以 x-cos-meta 开头,否则会被忽略 | Dict | 否 |
TrafficLimit | 单链接限速的值,单位为bit/s,限速值设置范围为819200 - 838860800,即100KB/s - 100MB/s | String | 否 |
{'ETag': 'string','x-cos-version-id': 'string'}
参数名称 | 参数描述 | 类型 |
ETag | 上传对象的 MD5 值 | String |
x-cos-version-id | 开启版本控制后,对象的版本号 | String |
append_object(Bucket, Key, Position, Data, **kwargs)
# -*- coding=utf-8from qcloud_cos import CosConfigfrom qcloud_cos import CosS3Clientimport sysimport osimport 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 = os.environ['COS_SECRET_ID'] # 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/32675secret_key = os.environ['COS_SECRET_KEY'] # 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/32675region = 'ap-beijing' # 替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.tencentcloud.com/cos5/bucket# COS 支持的所有 region 列表参见 https://www.tencentcloud.com/document/product/436/6224token = None # 如果使用永久密钥不需要填入 token,如果使用临时密钥需要填入,临时密钥生成和使用指引参见 https://www.tencentcloud.com/document/product/436/14048scheme = 'https' # 指定使用 http/https 协议来访问 COS,默认为 https,可不填config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)client = CosS3Client(config)response = client.append_object(Bucket='examplebucket-1250000000',Key='exampleobject',Position=0,Data=b'b'*1024*1024)
response = client.append_object(Bucket='examplebucket-1250000000',Key='exampleobject',Position=0,Data=b'bytes'|file)
参数名称 | 参数描述 | 类型 | 是否必填 |
Bucket | 存储桶名称,由 BucketName-APPID 构成 | String | 是 |
Key | 对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg 中,对象键为 doc/pic.jpg | String | 是 |
Position | 追加操作的起始点,单位为字节。首次追加则设置Position=0,后续追加则设置Position为当前Object的content-length | Int | 是 |
Data | 上传分块的内容,可以为本地文件流或输入流 | file/bytes | 是 |
{'ETag': '"9a4802d5c99dafe1c04da0a8e7e166bf"','x-cos-next-append-position': '12','x-cos-request-id': 'NjEwN2Q0ZGZfMWNhZjU4NjRfMzM1M19hNzQzYjc2'}
list_multipart_uploads(Bucket, Prefix="", Delimiter="", KeyMarker="", UploadIdMarker="", MaxUploads=1000, EncodingType="", **kwargs)
# -*- coding=utf-8from qcloud_cos import CosConfigfrom qcloud_cos import CosS3Clientimport sysimport osimport 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 = os.environ['COS_SECRET_ID'] # 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/32675secret_key = os.environ['COS_SECRET_KEY'] # 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/32675region = 'ap-beijing' # 替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.tencentcloud.com/cos5/bucket# COS 支持的所有 region 列表参见 https://www.tencentcloud.com/document/product/436/6224token = None # 如果使用永久密钥不需要填入 token,如果使用临时密钥需要填入,临时密钥生成和使用指引参见 https://www.tencentcloud.com/document/product/436/14048scheme = 'https' # 指定使用 http/https 协议来访问 COS,默认为 https,可不填config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)client = CosS3Client(config)response = client.list_multipart_uploads(Bucket='examplebucket-1250000000',Prefix='dir')
response = client.list_multipart_uploads(Bucket='examplebucket-1250000000',Prefix='string',Delimiter='string',KeyMarker='string',UploadIdMarker='string',MaxUploads=100,EncodingType='url')
参数名称 | 参数描述 | 类型 | 是否必填 |
Bucket | 存储桶名称,由 BucketName-APPID 构成 | String | 是 |
Prefix | 默认为空,对分块上传的 key 进行筛选,匹配 prefix 为前缀的分块上传 | String | 否 |
Delimiter | 默认为空,设置分隔符 | String | 否 |
KeyMarker | 和 UploadIdMarker 一起使用,指明列出分块上传的起始位置 | String | 否 |
UploadIdMarker | 和 KeyMarker 一起使用,指明列出分块上传的起始位置。如果未指定 KeyMarker,UploadIdMarker 将被忽略 | String | 否 |
MaxUploads | 最多返回的分块上传的数量,默认为最大的1000 | Int | 否 |
EncodingType | 默认不编码,规定返回值的编码方式,可选值:url | String | 否 |
{'Bucket': 'examplebucket-1250000000','Prefix': 'string','Delimiter': 'string','KeyMarker': 'string','UploadIdMarker': 'string','NextKeyMarker': 'string','NextUploadIdMarker': 'string','MaxUploads': '1000','IsTruncated': 'true'|'false',,'EncodingType': 'url','Upload':[{'UploadId': 'string','Key': 'string','Initiated': 'string','StorageClass': 'STANDARD','Owner': {'DisplayName': 'string','ID': 'string'},'Initiator': {'ID': 'string','DisplayName': 'string'}},],'CommonPrefixes':[{'Prefix': 'string'},],}
参数名称 | 参数描述 | 类型 |
Bucket | 存储桶名称,由 BucketName-APPID 构成 | String |
Prefix | 默认为空,对分块上传的 key 进行筛选,匹配 prefix 为前缀的分块上传 | String |
Delimiter | 默认为空,设置分隔符 | String |
KeyMarker | 和 UploadIdMarker 一起使用,指明列出分块上传的 key 起始位置 | String |
UploadIdMarker | 和 KeyMarker 一起使用,指明列出分块上传的 uploadId 起始位置。如果未指定 KeyMarker,UploadIdMarker 将被忽略 | String |
NextKeyMarker | 当 IsTruncated 为 true 时,指明下一次列出分块上传的 key 的起始位置 | String |
NextUploadIdMarker | 当 IsTruncated 为 true 时,指明下一次列出分块上传的 uploadId 的起始位置 | String |
MaxUploads | 最多返回的分块上传的数量,默认为最大的1000 | Int |
IsTruncated | 表示返回的分块上传是否被截断 | String |
EncodingType | 默认不编码,规定返回值的编码方式,可选值:url | String |
Upload | 包含所有分块上传的 list,包括 'UploadId','StorageClass','Key','Owner','Initiator','Initiated' 等信息 | List |
CommonPrefixes | 所有以 Prefix 开头,以 Delimiter 结尾的 Key 被归到同一类 | List |
create_multipart_upload(Bucket, Key, **kwargs):
# -*- coding=utf-8from qcloud_cos import CosConfigfrom qcloud_cos import CosS3Clientimport sysimport osimport 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 = os.environ['COS_SECRET_ID'] # 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/32675secret_key = os.environ['COS_SECRET_KEY'] # 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/32675region = 'ap-beijing' # 替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.tencentcloud.com/cos5/bucket# COS 支持的所有 region 列表参见 https://www.tencentcloud.com/document/product/436/6224token = None # 如果使用永久密钥不需要填入 token,如果使用临时密钥需要填入,临时密钥生成和使用指引参见 https://www.tencentcloud.com/document/product/436/14048scheme = 'https' # 指定使用 http/https 协议来访问 COS,默认为 https,可不填config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)client = CosS3Client(config)response = client.create_multipart_upload(Bucket='examplebucket-1250000000',Key='exampleobject',StorageClass='STANDARD')
response = client.create_multipart_upload(Bucket='examplebucket-1250000000',Key='multipart.txt',StorageClass='STANDARD'|'STANDARD_IA'|'ARCHIVE',Expires='string',CacheControl='string',ContentType='string',ContentDisposition='string',ContentEncoding='string',ContentLanguage='string',Metadata={'x-cos-meta-key1': 'value1','x-cos-meta-key2': 'value2'},ACL='private'|'public-read',GrantFullControl='string',GrantRead='string')# 获取 UploadId 供后续接口使用uploadid = response['UploadId']
参数名称 | 参数描述 | 类型 | 是否必填 |
Bucket | Bucket 名称,由 BucketName-APPID 构成 | String | 是 |
Key | 对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg 中,对象键为 doc/pic.jpg | String | 是 |
StorageClass | 设置对象的存储类型,STANDARD,STANDARD_IA,ARCHIVE。默认值为 STANDARD。更多存储类型,请参见 存储类型概述 | String | 否 |
Expires | 设置 Expires | String | 否 |
CacheControl | 缓存策略,设置 Cache-Control | String | 否 |
ContentType | 内容类型,设置 Content-Type | String | 否 |
ContentDisposition | 文件名称,设置 Content-Disposition | String | 否 |
ContentEncoding | 编码格式,设置 Content-Encoding | String | 否 |
ContentLanguage | 语言类型,设置 Content-Language | String | 否 |
Metadata | 用户自定义的对象元数据 | Dict | 否 |
ACL | 设置对象的 ACL,例如 'private','public-read' | String | 否 |
GrantFullControl | 赋予被授权者所有的权限,格式为 id="OwnerUin" ,例如 id="100000000001" | String | 否 |
GrantRead | 赋予被授权者读的权限,格式为 id="OwnerUin" ,例如 id="100000000001" | String | 否 |
{'UploadId': '150219101333cecfd6718d0caea1e2738401f93aa531a4be7a2afee0f8828416f3278e5570','Bucket': 'examplebucket-1250000000','Key': 'exampleobject'}
参数名称 | 参数描述 | 类型 |
UploadId | 标识分块上传的 ID | String |
Bucket | 存储桶名称,由 BucketName-APPID 组成 | String |
Key | 对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg 中,对象键为 doc/pic.jpg | String |
upload_part(Bucket, Key, Body, PartNumber, UploadId, **kwargs)
# -*- coding=utf-8from qcloud_cos import CosConfigfrom qcloud_cos import CosS3Clientimport sysimport osimport 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 = os.environ['COS_SECRET_ID'] # 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/32675secret_key = os.environ['COS_SECRET_KEY'] # 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/32675region = 'ap-beijing' # 替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.tencentcloud.com/cos5/bucket# COS 支持的所有 region 列表参见 https://www.tencentcloud.com/document/product/436/6224token = None # 如果使用永久密钥不需要填入 token,如果使用临时密钥需要填入,临时密钥生成和使用指引参见 https://www.tencentcloud.com/document/product/436/14048scheme = 'https' # 指定使用 http/https 协议来访问 COS,默认为 https,可不填config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)client = CosS3Client(config)# 注意,上传分块的块数最多10000块response = client.upload_part(Bucket='examplebucket-1250000000',Key='exampleobject',Body=b'b'*1024*1024,PartNumber=1,UploadId='exampleUploadId')
# 注意,上传分块的块数最多10000块response = client.upload_part(Bucket='examplebucket-1250000000',Key='exampleobject',Body=b'bytes'|file,PartNumber=1,UploadId='string',EnableMD5=False|True,ContentLength='123',ContentMD5='string',TrafficLimit='1048576')
参数名称 | 参数描述 | 类型 | 是否必填 |
Bucket | Bucket 名称,由 BucketName-APPID 构成 | String | 是 |
Key | 对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg 中,对象键为 doc/pic.jpg | String | 是 |
Body | 上传分块的内容,可以为本地文件流或输入流 | file/bytes | 是 |
PartNumber | 标识上传分块的序号 | Int | 是 |
UploadId | 标识分块上传的 ID | String | 是 |
EnableMD5 | 是否需要 SDK 计算 Content-MD5,默认关闭,打开后会增加上传耗时 | Bool | 否 |
ContentLength | 设置传输长度 | String | 否 |
ContentMD5 | 设置上传对象的 MD5 值用于校验 | String | 否 |
TrafficLimit | 单链接限速的值,单位为bit/s,限速值设置范围为819200 - 838860800,即100KB/s - 100MB/s | String | 否 |
{'ETag': 'string'}
参数名称 | 参数描述 | 类型 |
ETag | 上传分块的 MD5 值。 | String |
upload_part_copy(Bucket, Key, PartNumber, UploadId, CopySource, CopySourceRange='', **kwargs)
# -*- coding=utf-8from qcloud_cos import CosConfigfrom qcloud_cos import CosS3Clientimport sysimport osimport 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 = os.environ['COS_SECRET_ID'] # 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/32675secret_key = os.environ['COS_SECRET_KEY'] # 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/32675region = 'ap-beijing' # 替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.tencentcloud.com/cos5/bucket# COS 支持的所有 region 列表参见 https://www.tencentcloud.com/document/product/436/6224token = None # 如果使用永久密钥不需要填入 token,如果使用临时密钥需要填入,临时密钥生成和使用指引参见 https://www.tencentcloud.com/document/product/436/14048scheme = 'https' # 指定使用 http/https 协议来访问 COS,默认为 https,可不填config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)client = CosS3Client(config)response = client.upload_part_copy(Bucket='examplebucket-1250000000',Key='exampleobject',PartNumber=1,UploadId='exampleUploadId',CopySource={'Bucket': 'sourcebucket-1250000000','Key': 'exampleobject','Region': 'ap-guangzhou'})
response = client.upload_part_copy(Bucket='examplebucket-1250000000',Key='exampleobject',PartNumber=100,UploadId='string',CopySource={'Bucket': 'sourcebucket-1250000000','Key': 'sourceObject','Region': 'COS_REGION', #替换为源存储桶的 Region'VersionId': 'string'},CopySourceRange='string',CopySourceIfMatch='string',CopySourceIfModifiedSince='string',CopySourceIfNoneMatch='string',CopySourceIfUnmodifiedSince='string')
参数名称 | 参数描述 | 类型 | 是否必填 |
Bucket | 存储桶名称,由 BucketName-APPID 构成 | String | 是 |
Key | 对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg 中,对象键为 doc/pic.jpg | String | 是 |
PartNumber | 标识上传分块的序号 | Int | 是 |
UploadId | 标识分块上传的 ID | String | 是 |
CopySource | 描述拷贝源对象的路径,包含 Bucket、Key、Region、VersionId | Dict | 是 |
CopySourceRange | 描述拷贝源对象的范围,格式为 bytes=first-last。不指定时,默认拷贝整个源对象 | String | 否 |
CopySourceIfMatch | 源对象的 Etag 与给定的值相同时才拷贝 | String | 否 |
CopySourceIfModifiedSince | 源对象在给定的时间后被修改相才拷贝 | String | 否 |
CopySourceIfNoneMatch | 源对象的 Etag 与给定的值不相同时才拷贝 | String | 否 |
CopySourceIfUnmodifiedSince | 源对象在给定的时间后没有修改相才拷贝 | String | 否 |
{'ETag': 'string','LastModified': 'string','x-cos-copy-source-version-id': 'string',}
参数名称 | 参数描述 | 类型 |
ETag | 拷贝分块的 MD5 值 | String |
LastModified | 拷贝分块的最后一次修改时间 | String |
x-cos-copy-source-version-id | 源对象的版本号 | String |
list_parts(Bucket, Key, UploadId, MaxParts=1000, PartNumberMarker=0, EncodingType='', **kwargs)
# -*- coding=utf-8from qcloud_cos import CosConfigfrom qcloud_cos import CosS3Clientimport sysimport osimport 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 = os.environ['COS_SECRET_ID'] # 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/32675secret_key = os.environ['COS_SECRET_KEY'] # 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/32675region = 'ap-beijing' # 替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.tencentcloud.com/cos5/bucket# COS 支持的所有 region 列表参见 https://www.tencentcloud.com/document/product/436/6224token = None # 如果使用永久密钥不需要填入 token,如果使用临时密钥需要填入,临时密钥生成和使用指引参见 https://www.tencentcloud.com/document/product/436/14048scheme = 'https' # 指定使用 http/https 协议来访问 COS,默认为 https,可不填config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)client = CosS3Client(config)response = client.list_parts(Bucket='examplebucket-1250000000',Key='exampleobject',UploadId='exampleUploadId')
response = client.list_parts(Bucket='examplebucket-1250000000',Key='exampleobject',UploadId=uploadid,MaxParts=1000,PartNumberMarker=100,EncodingType='url')
参数名称 | 参数描述 | 类型 | 是否必填 |
Bucket | 存储桶名称,由 BucketName-APPID 构成 | String | 是 |
Key | 对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg 中,对象键为 doc/pic.jpg | String | 是 |
UploadId | 标识分块上传的 ID | String | 是 |
MaxParts | 最多返回的分块的数量,默认为最大的1000 | Int | 否 |
PartNumberMarker | 默认为0,从第一块列出分块,从 PartNumberMarker 下一个分块开始列出 | Int | 否 |
EncodingType | 默认不编码,规定返回值的编码方式,可选值:url | String | 否 |
{'Bucket': 'examplebucket-1250000000','Key': 'exampleobject','UploadId': '1502192444bdb382add546a35b2eeab81e06ed84086ca0bb75ea45ca7fa073fa9cf74ec4f2','EncodingType': None,'MaxParts': '1000','IsTruncated': 'true','PartNumberMarker': '0','NextPartNumberMarker': '1000','StorageClass': 'Standard','Part': [{'LastModified': '2017-08-08T11:40:48.000Z','PartNumber': '1','ETag': '"8b8378787c0925f42ccb829f6cc2fb97"','Size': '10485760'},],'Initiator': {'DisplayName': '3333333333','ID': 'qcs::cam::uin/3333333333:uin/3333333333'},'Owner': {'DisplayName': '124564654654','ID': '124564654654'}}
参数名称 | 参数描述 | 类型 |
Bucket | 存储桶名称,由 BucketName-APPID 构成 | String |
Key | 对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg 中,对象键为 doc/pic.jpg | String |
UploadId | 标识分块上传的 ID | String |
EncodingType | 默认不编码,规定返回值的编码方式,可选值:url | String |
MaxParts | 最多返回的分块的数量,默认为最大的1000 | String |
IsTruncated | 表示返回的分块是否被截断 | String |
PartNumberMarker | 默认为0,从第一块列出分块,从 PartNumberMarker 下一个分块开始列出 | String |
NextPartNumberMarker | 指明下一次列出分块的起始位置 | String |
StorageClass | 对象的存储类型,STANDARD,STANDARD_IA,ARCHIVE。默认值为 STANDARD,更多存储类型,请参见 存储类型概述 | String |
Part | 上传分块的相关信息,包括 ETag,PartNumber,Size,LastModified | String |
Initiator | 分块上传的创建者,包括 DisplayName 和 ID | Dict |
Owner | 对象拥有者的信息,包括 DisplayName 和 ID | Dict |
complete_multipart_upload(Bucket, Key, UploadId, MultipartUpload={}, **kwargs)
# -*- coding=utf-8from qcloud_cos import CosConfigfrom qcloud_cos import CosS3Clientimport sysimport osimport 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 = os.environ['COS_SECRET_ID'] # 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/32675secret_key = os.environ['COS_SECRET_KEY'] # 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/32675region = 'ap-beijing' # 替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.tencentcloud.com/cos5/bucket# COS 支持的所有 region 列表参见 https://www.tencentcloud.com/document/product/436/6224token = None # 如果使用永久密钥不需要填入 token,如果使用临时密钥需要填入,临时密钥生成和使用指引参见 https://www.tencentcloud.com/document/product/436/14048scheme = 'https' # 指定使用 http/https 协议来访问 COS,默认为 https,可不填config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)client = CosS3Client(config)response = client.complete_multipart_upload(Bucket='examplebucket-1250000000',Key='exampleobject',UploadId='exampleUploadId',MultipartUpload={'Part': [{'ETag': 'string','PartNumber': 1},{'ETag': 'string','PartNumber': 2},]},)
参数名称 | 参数描述 | 类型 | 是否必填 |
Bucket | Bucket 名称,由 BucketName-APPID 构成 | String | 是 |
Key | 对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg 中,对象键为 doc/pic.jpg | String | 是 |
UploadId | 标识分块上传的 ID | String | 是 |
MultipartUpload | 所有分块的 ETag 和 PartNumber 信息 | Dict | 是 |
{'ETag': '"3f866d0050f044750423e0a4104fa8cf-2"','Bucket': 'examplebucket-1250000000','Location': 'examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/exampleobject','Key': 'exampleobject'}
参数名称 | 参数描述 | 类型 |
ETag | 合并后对象的唯一标签值,该值不是对象内容的 MD5 校验值,仅能用于检查对象唯一性。如需校验对象内容,可以在上传过程中校验单个分块的 ETag 值。 | String |
Bucket | 存储桶名称,由 BucketName-APPID 构成 | String |
Location | URL 地址 | String |
Key | 对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg 中,对象键为 doc/pic.jpg | String |
abort_multipart_upload(Bucket, Key, UploadId, **kwargs)
# -*- coding=utf-8from qcloud_cos import CosConfigfrom qcloud_cos import CosS3Clientimport sysimport osimport 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 = os.environ['COS_SECRET_ID'] # 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/32675secret_key = os.environ['COS_SECRET_KEY'] # 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/32675region = 'ap-beijing' # 替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.tencentcloud.com/cos5/bucket# COS 支持的所有 region 列表参见 https://www.tencentcloud.com/document/product/436/6224token = None # 如果使用永久密钥不需要填入 token,如果使用临时密钥需要填入,临时密钥生成和使用指引参见 https://www.tencentcloud.com/document/product/436/14048scheme = 'https' # 指定使用 http/https 协议来访问 COS,默认为 https,可不填config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)client = CosS3Client(config)response = client.abort_multipart_upload(Bucket='examplebucket-1250000000',Key='exampleobject',UploadId='exampleUploadId')
参数名称 | 参数描述 | 类型 | 是否必填 |
Bucket | 存储桶名称,由 BucketName-APPID 构成 | String | 是 |
Key | 对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg 中,对象键为 doc/pic.jpg | String | 是 |
UploadId | 标识分块上传的 ID | String | 是 |
本页内容是否解决了您的问题?