データをマルチパートアップロードモードで転送する前に、InitiateMultipartUpload インターフェイスを呼び出して、マルチパートアップロードイベントを開始するように OSS に通知する必要があります。InitiateMultipartUpload インターフェイスは、このマルチパートアップロードイベントを特定するために OSS サーバーによって作成されたグローバルに一意なアップロード ID を返します。この ID に基づいて、マルチパートアップロードの中止やマルチパートアップロードの照会などの操作を開始できます。
リクエスト構文
POST /ObjectName?uploads HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT date
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 を返します。
例
リクエストの例:
POST /multipart.data?uploads HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Date: Wed, 22 Feb 2012 08:32:21 GMT
Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:/cluRFtRwMTZpC2hTj4F67AGdM4=
レスポンスの例:
HTTP/1.1 200 OK
Content-Length: 230
Server: AliyunOSS
Connection: keep-alive
x-oss-request-id: 42c25703-7503-fbd8-670a-bda01eaec618
Date: Wed, 22 Feb 2012 08:32:21 GMT
Content-Type: application/xml
<?xml version="1.0" encoding="UTF-8"?>
<InitiateMultipartUploadResult xmlns="http://doc.oss-cn-hangzhou.aliyuncs.com">
<Bucket> multipart_upload</Bucket>
<Key>multipart.data</Key>
<UploadId>0004B9894A22E5B1888A1E29F8236E2D</UploadId>
</InitiateMultipartUploadResult>