edit-icon download-icon

InitiateMultipartUpload

最終更新日: Aug 01, 2018

データをマルチパートアップロードモードで転送する前に、InitiateMultipartUpload インターフェイスを呼び出して、マルチパートアップロードイベントを開始するように OSS に通知する必要があります。InitiateMultipartUpload インターフェイスは、このマルチパートアップロードイベントを特定するために OSS サーバーによって作成されたグローバルに一意なアップロード ID を返します。この ID に基づいて、マルチパートアップロードの中止やマルチパートアップロードの照会などの操作を開始できます。

リクエスト構文

  1. POST /ObjectName?uploads HTTP/1.1
  2. Host: BucketName.oss-cn-hangzhou.aliyuncs.com
  3. Date: GMT date
  4. Authorization: SignatureValue

リクエスト パラメーター

マルチパートアップロードモードを初期化するとき、encoding-typeパラメーターを利用して返されるエンコードキーを指定可能です。

名前   説明
encoding-type String  返された結果に、キーのエンコーディング型を指定します。現在、URLエンコーディングがサポートされています。Key は UTF-8 エンコーディングを採用していますが、XML 1.0標準では、ASCII値の 0〜10などの特定の制御文字の解析はサポートされていません。もし、Key に XML 1.0 Standardでサポートされていない制御文字が含まれている場合は、返された Key をエンコードするために encoding-型を指定することができます。
デフォルト値:なし
オプションの値:url

リクエストヘッダー

名前 説明
Cache-Control String オブジェクトがダウンロードされる際の Web ページのキャッシュ動作を指定します。詳細については、『RFC2616』を参照してください。
デフォルト値: なし
Content-Disposition String オブジェクトがダウンロードされる際のオブジェクトの名前を指定します。詳細については、『RFC2616』を参照してください。
デフォルト値: なし
Content-Encoding String オブジェクトがダウンロードされる際のコンテンツのエンコーディング形式を指定します。詳細については、『RFC2616』を参照してください。
デフォルト値: なし
Expires Integer 有効期限をミリ秒単位で指定します。詳細については、『RFC2616』を参照してください。
デフォルト値: なし
x-oss-server-side-encryption String このオブジェクトの各パートのアップロードに使用するサーバー側の暗号化アルゴリズムを指定します。OSS は、アップロードされた各パートをサーバー側の暗号化に基づいて格納します。
有効な値: AES256

レスポンスの要素

名前   説明
Bucket String マルチパートアップロードイベントを開始したバケットの名前。
親ノード: InitiateMultipartUploadResult
InitiateMultipartUploadResult Container InitiateMultipartUpload リクエストの結果の格納に使用されるコンテナー。
サブノード: Bucket、Key、UploadId
親ノード: なし
Key String マルチパートアップロードイベントを開始したオブジェクトの名前。
親ノード: InitiateMultipartUploadResult
UploadId String マルチパートアップロードイベントの一意の ID。
親ノード: InitiateMultipartUploadResult
EncodingType String 返す結果にエンコードタイプを指定します。リクエストの中、エンコードタイプが指定された場合、エンコードされたキーが返されます。
親ノード: Container

詳細分析

  • この操作を使用して認証署名を計算する場合は、”?uploads” を “CanonicalizedResource” に追加する必要があります。
  • InitiateMultipartUpload リクエストでは、標準の HTTP リクエストヘッダー Cache-Control、Content-Disposition、Content-Encoding、Content-Type、Expires と、”x-oss-meta-“ というプレフィックスが付いたユーザー定義のヘッダーがサポートされています。これらのヘッダーの具体的な意味については、「PUT Object」インターフェイスを参照してください。
  • InitiateMultipartUpload リクエストは、同じ名前の既存のオブジェクトに影響しません。
  • InitiateMultipartUpload リクエストを受信すると、サーバーはリクエスト本文を XML 形式で返します。リクエスト本文には Bucket、Key、UploadID の 3 つの要素があります。その後のマルチパート操作のために UploadID を記録しておいてください。
  • InitiateMultipartUpload リクエストで x-oss-server-side-encryption ヘッダーが設定されている場合、サーバーはこのヘッダーを応答ヘッダーで返します。各パートのアップロード時に、サーバーはエントロピ暗号化に基づいてそれらのパートを自動的に格納します。現在、OSS サーバーでは 256 ビットの高度暗号化標準 (AES256) のみがサポートされています。その他の標準の値を指定した場合、OSS サーバーはエラー 400 と対応するエラープロンプト InvalidEncryptionAlgorithmError を返します。各パートをアップロードする際に、x-oss-server-side-encryption リクエストヘッダーを追加する必要はありません。このリクエストヘッダーを指定した場合、OSS はエラー 400 と対応するエラープロンプト InvalidArgument を返します。

リクエストの例:

  1. POST /multipart.data?uploads HTTP/1.1
  2. Host: oss-example.oss-cn-hangzhou.aliyuncs.com
  3. Date: Wed, 22 Feb 2012 08:32:21 GMT
  4. Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:/cluRFtRwMTZpC2hTj4F67AGdM4=

レスポンスの例:

  1. HTTP/1.1 200 OK
  2. Content-Length: 230
  3. Server: AliyunOSS
  4. Connection: keep-alive
  5. x-oss-request-id: 42c25703-7503-fbd8-670a-bda01eaec618
  6. Date: Wed, 22 Feb 2012 08:32:21 GMT
  7. Content-Type: application/xml
  8. <?xml version="1.0" encoding="UTF-8"?>
  9. <InitiateMultipartUploadResult xmlns="http://doc.oss-cn-hangzhou.aliyuncs.com">
  10. <Bucket> multipart_upload</Bucket>
  11. <Key>multipart.data</Key>
  12. <UploadId>0004B9894A22E5B1888A1E29F8236E2D</UploadId>
  13. </InitiateMultipartUploadResult>