complete-multipart-upload

complete-multipart-upload用于完成整个文件的分片上传。

注意事项

  • 阿里云账号默认拥有设置Object的权限。如果您需要通过RAM用户或者STS的方式进行设置,您必须拥有oss:PutObject权限。具体操作,请参见RAM用户授权自定义的权限策略

  • 调用 complete-multipart-upload 操作时,用户需提供所有有效的分片列表(含 PartNumber 和 ETag),PartNumber 范围为 1~10000,按升序排列且可不连续;OSS 会验证每个分片的有效性,确保除最后一个分片外的每个分片大小不小于 100 KB,验证通过后将这些分片组合成一个完整的对象。

  • 由于OSS处理CompleteMultipartUpload请求时会持续一定的时间。在这段时间内,如果客户端与OSS之间连接中断,OSS仍会继续该请求。

  • 同一个Object可以同时拥有不同的UploadId,当Complete一个UploadId后,此UploadId将失效,但该Object的其他UploadId不受影响。

命令格式

ossutil api complete-multipart-upload --bucket value --key value --upload-id value --complete-multipart-upload value [flags]

参数

类型

说明

--bucket

string

要修改的目标Bucket。

--complete-all

string

指定是否列举当前UploadId已上传的所有Part。

--complete-multipart-upload

string

保存CompleteMultipartUpload请求内容的容器。

--encoding-type

string

指定对返回的内容进行编码,指定编码的类型。

--forbid-overwrite

string

指定CompleteMultipartUpload操作时是否覆盖同名Object。

--key

string

Object的完整路径。

--upload-id

string

MultipartUpload事件的ID。

说明

complete-multipart-upload命令对应API接口CompleteMultipartUpload。关于API中的具体参数含义,请参见CompleteMultipartUpload

--complete-multipart-upload

--complete-multipart-upload配置选项既支持XML语法也支持JSON语法,当选项值包含file://前缀时,表示从文件中读取配置。

  • XML语法:

    <CompleteMultipartUpload>
      <Part>
        <PartNumber>integer</PartNumber>
        <ETag>string</ETag>
      </Part>
      ...
    </CompleteMultipartUpload>
  • JSON语法:

    {
      "Part": [
        {
          "PartNumber": integer,
          "ETag": "string"
        },
        ...
      ]
    }
说明

关于支持的全局命令行选项,请参见支持的全局命令行选项

使用示例

以下示例展示了如何为存储空间examplebucket中上传ID123exampleobject完成分片上传。

  • 使用XML配置文件,complete-multipart-upload.xml内容如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <CompleteMultipartUpload>
      <Part>
        <PartNumber>1</PartNumber>
        <ETag>"C884BAB4F7A89D38A194568C7DE****"</ETag>
      </Part>
      <Part>
        <PartNumber>2</PartNumber>
        <ETag>"C884BAB4F7A89D38A194568C7DEA****"</ETag>
      </Part>
    </CompleteMultipartUpload>

命令示例如下:

ossutil api complete-multipart-upload --bucket examplebucket --key exampleobject --upload-id 123 --complete-multipart-upload file://complete-multipart-upload.xml
  • 使用JSON配置文件,complete-multipart-upload.json 内容如下:

    {
      "Part": [
        {
          "PartNumber": "1",
          "ETag": "\"C884BAB4F7A89D38A194568C7DE****\""
        },
        {
          "PartNumber": "2",
          "ETag": "\"C884BAB4F7A89D38A194568C7DEA****\""
        }
      ]
    }

    命令示例如下:

    ossutil api complete-multipart-upload --bucket examplebucket --key exampleobject --upload-id 123 --complete-multipart-upload file://complete-multipart-upload.json
  • 使用JSON配置参数,命令示例如下:

    ossutil api complete-multipart-upload --bucket examplebucket --key exampleobject --upload-id 123 --complete-multipart-upload file://complete-multipart-upload.json

以下示例展示了如何列举存储空间examplebucket的当前UploadId123已上传的所有Part。

ossutil api complete-multipart-upload --bucket examplebucket --key exampleobject --upload-id 123 --complete-all yes