最終更新日:2025-08-18 15:54:03
ユーザーがすべてのセグメントをアップロードした後、「マージセグメント」インターフェースを呼び出すことで、システムがユーザーの指定したセグメントをサーバー側で1つの完全なオブジェクトに統合します。「マージセグメント」操作を実施する前は、アップロード済みデータをダウンロードすることはできません。
セグメントの統合時には、マルチパートアップロードタスク初期化時に記録された追加メッセージヘッダー情報を、オブジェクトのメタデータへコピーする必要があります。この処理過程は、これらのメッセージヘッダー付きの通常オブジェクトアップロード時と同じです。
アップロード済みのセグメントは、対応するマルチパートアップロードタスクがキャンセルされない限り、ユーザーの容量クォータを消費し続けます。対応するタスクの「マージセグメント」処理が完了すると、指定したマルチパートデータのみが容量クォータを占有します。「マージセグメント」時に指定されなかったパートデータは、「マージセグメント」完了後に削除され、同時に容量クォータも解放されます。
マージ後のマルチパートアップロードデータは、既存のダウンロードオブジェクトインターフェースを介して、マルチパートアップロードオブジェクト全体としてダウンロード可能です。
マージ後のマルチパートアップロードデータは、既存のオブジェクト削除インターフェースによって削除できます。削除すると、当該マルチパートアップロードオブジェクトのすべてのパートデータが削除され、元に戻すことはできません。
マージされたマルチパートアップロードデータのEtagは、全体オブジェクトのMD5値ではありません。オブジェクトのダウンロードやリスト表示時にみられるマルチパートデータのEtag生成規則は「MD5(M1M2……MN)-N」となります(Mnは各n番目パートのMD5値、Nはパート数を表します)。
POST /ObjectName?uploadId=uploadID HTTP/1.1
Host: Bucket.Endpoint
Date: date
Content-Length: length
Authorization: authorization
<CompleteMultipartUpload>
<Part>
<PartNumber>partNum1</PartNumber>
<ETag>etag1</ETag>
</Part>
<Part>
<PartNumber>partNum2</PartNumber>
<ETag>etag2</ETag>
</Part>
<Part>
<PartNumber>partNum3</PartNumber>
<ETag>etag3</ETag>
</Part>
</CompleteMultipartUpload>
| パラメータ名 | 説明 | 必須 |
|---|---|---|
| uploadId | Initiate Multipart Upload レスポンス時のアップロードID | yes |
common request headers のみ使用してください。
リクエストボディは、XML形式の分割データ情報です。
| 要素名 | 説明 | 必須 |
|---|---|---|
| CompleteMultipartUpload | マージするセグメントの一覧。 型: XML 親: null 子ノード: 1つ以上の Part要素 |
Yes |
| Part | アップロードセグメントの要素リスト。 型: XML 親ノード: CompleteMultipart 子ノード: PartNumber, ETag |
Yes |
| PartNumber | セグメント番号。 型: 整数 親ノード: Part |
Yes |
| ETag | 対応するセグメントのETag値。 型: 文字列 親ノード: Part |
Yes |
HTTP/1.1 status_code
x-wos-request-id: request id
Content-Type: application/xml
Content-Length: length
Date: date
Connection: state
Server:WS-web-server
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<CompleteMultipartUploadResult xmlns="https://www.wangsu.com/document">
<Location>http://example-Bucket.Endpoint/example-Object</Location>
<Bucket>BucketName</Bucket>
<Key>ObjectName</Key>
<ETag>ETag</ETag>
</CompleteMultipartUploadResult>
common response headers のみ使用してください。
| 要素名 | 説明 |
|---|---|
| CompleteMultipartUpload | レスポンスコンテナ 型: XML 子ノード: Location, Bucket, Key, ETag 親ノード: なし |
| Location | マージ後オブジェクトのURL 型: 文字列 親ノード: CompleteMultipartUpload |
| Bucket | マージ後セグメントが格納されるスペース名 型: 文字列 親ノード: CompleteMultipartUpload |
| Key | マージ後オブジェクトのキー 型: 文字列 親ノード: CompleteMultipartUpload |
| ETag | 各セグメントのETagから計算された結果タイプ 型: 文字列 親ノード: CompleteMultipartUpload |
| 状況 | HTTPステータス | エラーコード | メッセージ |
|---|---|---|---|
| メッセージボディのXMLデータで指定したetag値が間違っている | 400 Bad Request | InvalidPart | One or more of the specified parts could not be found. The part may not have been uploaded, or the specified entity tag may not match the part’s entity tag. |
| XMLデータが存在しない | 400 Bad Request | InvalidRequest | You must specify at least one part |
| XMLデータのフォーマット異常(例:partNumberタグが抜けている等) | 400 Bad Request | MalformedXML | The XML you provided was not well-formed or did not validate against our published schema |
POST /example-object?uploadId=AAAsb2FkIElEIGZvciBlbHZpbmcncyWeeS1tb3ZpZS5tMnRzIRRwbG9hZA HTTP/1.1
Host: bucket.s3-cn-east-1.wcsapi.com
Date: Mon, 1 Nov 2020 20:34:56 GMT
Content-Length: 391
Authorization: WOS AKIAIOSFODNN7EXAMPLE:0RQf4/cRonhpaBX5sCYVf1bNRuU=
<CompleteMultipartUpload>
<Part>
<PartNumber>1</PartNumber>
<ETag>"a54357aff0632cce46d942af68356b38"</ETag>
</Part>
<Part>
<PartNumber>2</PartNumber>
<ETag>"0c78aef83f66abc1fa1e8477f296d394"</ETag>
</Part>
<Part>
<PartNumber>3</PartNumber>
<ETag>"acbd18db4cc2f85cedef654fccc4a4d8"</ETag>
</Part>
</CompleteMultipartUpload>
HTTP/1 200 OK
x-wos-request-id: 100315319214214320170602225414pFHJIshn
Access-Control-Allow-Origin: *
Connection: close
Content-Type: application/xml
Content-Length: 301
Date: Mon, 05 Jun 2017 09:56:01 GMT
Server: WS-web-server
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<CompleteMultipartUploadResult xmlns="https://www.wangsu.com/document">
<Bucket>r28-sync-data</Bucket>
<ETag>4dc0dc31f93e3f73c52ce251fcdfcaa2-2</ETag>
<Key>multiobject</Key>
<Location>http://example-Bucket.Endpoint/example-Object</Location>
</CompleteMultipartUploadResult>