edit-icon download-icon

UploadPart

最終更新日: Aug 01, 2018

マルチパートアップロードイベントを開始したら、指定したオブジェクト名とアップロード ID に基づいて、データをパートに分けてアップロードできます。アップロードされた各パートには、1 ~ 10,000 の範囲のパート番号が割り当てられます。

同じアップロード ID の場合、このパート番号によって、このデータパートだけでなくファイル全体におけるこのパートの位置も識別されます。同じパート番号を使用して新しいデータをアップロードすると、このパート番号で識別される既存のデータが上書きされます。最後のパート以外のパートの最小サイズは 100 KB です。最後のパートのサイズには制約はありません。

リクエスト構文

  1. PUT /ObjectName?partNumber=PartNumber&uploadId=UploadId HTTP/1.1
  2. Host: BucketName.oss-cn-hangzhou.aliyuncs.com
  3. Date: GMT Date
  4. Content-Length: Size
  5. Authorization: SignatureValue

詳細分析

  • InitiateMultipartUpload インターフェイスを呼び出してデータパートをアップロードする前に、このインターフェイスを呼び出して、OSS サーバーによって発行されるアップロード ID を取得する必要があります。
  • マルチパートアップロードモードでは、最後のパート以外のパートはすべて 100 KB を超えている必要があります。ただし、UploadPart インターフェイスでは、アップロードされたパートのサイズがすぐに検証されるわけではありません (そのパートが最後のパートかどうかがわからないため)。アップロードされたパートのサイズは、マルチパートアップロードが完了して初めて検証されます。
  • OSS は、受信したデータパートの MD5 値を ETag ヘッダーに配置し、それをユーザーに返します。
  • パート番号の範囲は 1 ~ 10,000 です。パート番号がこの範囲を超えている場合、OSS は InvalidArgument エラーコードを返します。
  • InitiateMultipartUpload インターフェイスを呼び出したときに x-oss-server-side-encryption リクエストヘッダーを指定した場合、OSS はアップロードされたパートを暗号化し、UploadPart 応答ヘッダーで x-oss-server-side-encryption ヘッダーを返します。x-oss-server-side-encryption の値は、このパートに使用するサーバー側の暗号化アルゴリズムを示します。詳細については、「InitiateMultipartUpload」インターフェイスを参照してください。
  • ネットワーク経由で転送されたデータにエラーがないことを確認するために、リクエストに Content-MD5 を含めます。OSS ではアップロードされたデータの MD5 値が計算され、ユーザーがアップロードした MD5 値と比較されます。それらの値が一致しない場合、OSS は InvalidDigest エラーコードを返します。

リクエストの例:

  1. PUT /multipart.data?partNumber=1&uploadId=0004B9895DBBB6EC98E36 HTTP/1.1
  2. Host: oss-example.oss-cn-hangzhou.aliyuncs.com
  3. Content-Length:6291456
  4. Date: Wed, 22 Feb 2012 08:32:21 GMT
  5. Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:J/lICfXEvPmmSW86bBAfMmUmWjI=
  6. [6291456 bytes data]

レスポンスの例:

  1. HTTP/1.1 200 OK
  2. Server: AliyunOSS
  3. Connection: keep-alive
  4. ETag: 7265F4D211B56873A381D321F586E4A9
  5. x-oss-request-id: 3e6aba62-1eae-d246-6118-8ff42cd0c21a
  6. Date: Wed, 22 Feb 2012 08:32:21 GMT