帮你快速理解、总结文档立即下载

初始化分块上传

最近更新时间:2026-10-21 18:34:05
本文档已由 AI 辅助审校
我的收藏
初始化一次分块上传(Initiate Multipart Upload),成功后返回 UploadId,作为后续上传分块与完成上传的唯一标识。分块上传的完整流程为:初始化取得 UploadId → 多次上传分块并逐块记录 PartNumber 与 ETag → 完成分块上传提交。对高性能桶发起请求时,SDK 自动完成会话鉴权。

注意事项

自动分块上传与续传的完整用法见 Python SDK 上传本地文件。
分块上传用于文件对象,Key 不以 / 结尾;以 / 结尾会返回 400 InvalidArgument。目录对象请用 Python SDK 上传对象 创建。
如需防止覆盖已有文件对象,必须在 Python SDK 完成分块上传 调用中显式设置 ForbidOverwrite='true';不能依赖初始化请求中的设置保护最终写入。
返回的 UploadId 需妥善保存,后续 Python SDK 上传分块、Python SDK 完成分块上传、Python SDK 终止分块上传 均需携带。
已上传但未完成提交的分块会占用存储空间,请及时 Python SDK 完成分块上传 或 Python SDK 终止分块上传。
高性能桶不支持对象版本,传入 VersionId 会本地报错。
大文件上传建议直接使用高级接口 upload_file,其内部会自动完成初始化、并发上传分块、完成分块上传,并支持断点续传与 EnableMD5 完整性校验。
初始化分块上传属于数据面接口,SDK 使用 session 临时凭证签名。

请求

方法原型

def create_multipart_upload(self, Bucket, Key, **kwargs)

参数说明

参数名称
参数描述
类型
是否必选
Bucket
高性能桶完整名称,格式为 <BucketName>-x--<APPID>
string
是
Key
对象键(Object Key),即对象在桶中的完整路径
string
是
kwargs
可选请求参数,使用本文列出的参数
dict
否
常用 kwargs:
参数名称
参数描述
类型
是否必选
ContentType
对象的 MIME 类型
string
否
CacheControl
缓存策略,设置 Cache-Control
string
否
Metadata
用户自定义的对象元信息,键须以 x-cos-meta- 开头
dict
否
StorageClass
存储类型,高性能桶仅支持默认值(RAPID)
string
否

响应

返回值为解析后的 dict:
参数名称
参数描述
类型
Bucket
分块上传所在的桶名
string
Key
对象键
string
UploadId
本次分块上传的标识,后续上传分块、完成或终止上传均需携带
string

错误码

本接口遵循统一的错误响应和错误码,详情请参见 错误码文档。

实际案例

# -*- coding=utf-8 -*-
import os
from qcloud_cos import CosConfig, CosS3Client

# 高性能桶经 VPC 内网 HTTP 80 端口接入,SDK 的网关 DNS 负载均衡也仅对 HTTP 请求生效;SDK 默认 https,此处需显式指定 http。
config = CosConfig(
Scheme='http',
Region='ap-guangzhou',
SecretId=os.environ['COS_SECRET_ID'],
SecretKey=os.environ['COS_SECRET_KEY'],
Token=os.environ.get('COS_SECURITY_TOKEN'),
EnableRapidDomain=True)
client = CosS3Client(config)

resp = client.create_multipart_upload(
Bucket='examplebucket-x--1250000000',
Key='exampleobject.txt',
ContentType='text/plain')
upload_id = resp['UploadId']
print('UploadId: %s' % upload_id)