对象存储

  • 对象存储 > API 文档 > Object 接口 > 分片上传 v2 版 > 完成文件上传

    完成文件上传

    最近更新时间:2020-12-11 10:37:02

    描述

    在将所有数据 Part 都上传完成后,必须调用 completeMultipartUpload API 来完成整个文件的 Multipart Upload。用户需要提供有效数据的 Part 列表( 包括 PartNumber 和调用 uploadPart API 服务端返回的 Etag )。服务端收到用户提交的 Part 列表后,会逐一验证每个数据 Part 的有效性。当所有的数据 Part 验证通过后,会把这些数据 Part 组合成一个完整的 Object。


    请求



    语法

    POST /buckets/<BucketName>/objects/<EncodedObjectName>/uploads/<UploadId> HTTP/1.1
    Host: <UpHost>
    Content-Type: application/json
    Authorization: UpToken <UploadToken>
    
    {
        "parts": [{ "etag": "<Etag>", "partNumber": <PartNumber> }, ...],
        "fname": "<Fname>",
        "mimeType": "<MimeType>",
        "metadata": {"x-qn-meta-<MetaKey>": "<MetaValue>", ...},
        "customVars": {"x:<CustomVarKey>": "<CustomVarValue>", ...}
    }
    

    使用说明:

    • completeMultipartUpload 时会确认除最后一块以外所有块的大小是否都大于等于 1 MB ,并检查用户提交的 Part 列表中的每一个 PartNumber 和 Etag 。
    • 用户提交的 Part 列表中,Part 号码可以不连续,但必须是升序。
    • 服务端处理 completeMultipartUpload 请求成功后,该 UploadId 就会变成无效,再次请求与该 UploadId 相关操作都会失败。


    请求参数

    参数名称 必填 说明
    BucketName 空间名称
    EncodedObjectName 资源名,EncodedObjectName 需要经过 Base64 编码。具体可以参照:URL 安全的 Base64 编码
    UploadId 在服务端申请的 MultipartUpload 任务 id


    请求头

    头部名称 必填 说明
    Host 上传服务器域名。
  • 上传到华东区的域名为 up.qiniup.comup-z0.qiniup.comupload.qiniup.com
  • 上传到华北区的域名为 up-z1.qiniup.comupload-z1.qiniup.com
  • 上传到华南区的域名为 up-z2.qiniup.comupload-z2.qiniup.com
  • 上传到北美区的域名为 up-na0.qiniup.comupload-na0.qiniup.com
  • 上传到东南亚区的域名为 up-as0.qiniup.comupload-as0.qiniup.com
  • Authorization 该参数应严格按照上传凭证格式进行填充,否则会返回 401 错误码。一个合法的 Authorization 值应类似于 Authorization: UpToken QNJi_bYJlmO5LeY08FfoNj9w_r...
    Content-Type 固定为 application/json


    请求元素

    参数名称 类型 必填 说明
    parts Array 已经上传 Part 列表 ( 包括 PartNumber ( int )和调用 uploadPart API 服务端返回的 Etag ( string ))
    fname string 上传的原始文件名, 若未指定,则魔法变量中无法使用 fname,ext,suffix
    mimeType string 若指定了则设置上传文件的 mimeType, 若未指定,则根据文件内容自动检测 mimeType
    metadata - 用户自定义文件 metadata 信息的 key 和 value, 可以设置多个,MetaKey 和 MetaValue 都是 string,其中 可以由字母、数字、下划线、减号组成,且长度小于等于 50,单个文件 MetaKey 和 Metavalue 总和大小不能超过 1024 字节
    customVars - 用户自定义变量,CustomVarKey 和 CustomVarValue 都是 string


    响应


    响应头

    该请求操作的实现使用了所有操作的公共响应头。有关详细信息,请查阅公共响应头


    响应元素

    名称 类型 说明
    key string 资源名称
    hash string 目标资源的 hash 值,可用于 Etag 头部


    特殊错误

    该操作的实现不会返回特殊错误。有关错误和错误代码列表的一般信息,请查阅错误响应

    上传策略特殊说明

    该操作的实现不支持上传策略中 " returnUrl " ,请查阅上传策略


    示例



    请求示例

    POST /buckets/myBucket/objects/myObject/uploads/myUploadId HTTP/1.1
    Host: up.qiniup.com
    Content-Type: application/json
    Authorization: UpToken <UploadToken>
    
    {
        "parts": [
            {
                "partNumber": 1,
                "etag": "FqvtxHpe3j-rEzkImMUWDsmvu27D"
            }
        ],
        "mimeType": ""
    }
    


    响应示例

    HTTP/1.1 200 OK
    Content-Length: 2
    Connection: keep-alive
    Content-Type: application/json
    Date: Wed, 18 Dec 2019 17:02:11 GMT
    Server: nginx
    X-Reqid: SFkAAAC8BDebTtsU
    
    {
        "hash": "FqvtxHpe3j-rEzkImMUWDsmvu27D",
        "key": "myObject"
    }
    
    以上内容是否对您有帮助?
  • Qvm free helper
    Close