InitiateMultipartUpload 操作を呼び出して、Object Storage Service (OSS) にデータをパート単位でアップロードする前に、マルチパートアップロードイベントを初期化できます。
注意事項
InitiateMultipartUpload 操作を呼び出すと、OSS はマルチパートアップロードイベントに対してグローバルに一意のアップロード ID を作成して返します。この ID を使用して、マルチパートアップロードの中止やクエリなどの関連操作を実行します。
マルチパートアップロードを初期化しても、同じ名前の既存のオブジェクトには影響しません。
InitiateMultipartUpload 操作を認証するための署名を計算するときは、
CanonicalizedResourceに?uploadsを追加します。マルチパートアップロードイベントを初期化するには、
oss:PutObject権限が必要です。詳細については、「RAM ユーザーへのカスタム権限の付与」をご参照ください。
権限
デフォルトでは、Alibaba Cloud アカウントはすべての権限を持っています。Alibaba Cloud アカウント下の RAM ユーザーまたは RAM ロールは、デフォルトではいかなる権限も持っていません。Alibaba Cloud アカウントまたはアカウント管理者は、RAM ポリシーまたはバケットポリシーを通じて操作権限を付与する必要があります。
API | アクション | 定義 |
InitiateMultipartUpload |
| マルチパートアップロードタスクを初期化します。 |
| マルチパートアップロードタスクを初期化する際に、x-oss-tagging を通じてオブジェクトタグを指定する場合、この権限が必要です。 | |
| オブジェクトをアップロードする際に、オブジェクトのメタデータに X-Oss-Server-Side-Encryption: KMS が含まれている場合、これら 2 つの権限が必要です。 | |
|
リクエストの構文
POST /ObjectName?uploads HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT date
Authorization: SignatureValueリクエストヘッダー
InitiateMultipartUpload リクエストは、Cache-Control、Content-Disposition、Content-Encoding、Content-Type、Expires などの標準 HTTP リクエストヘッダー、および x-oss-meta- で始まるカスタムヘッダーをサポートします。詳細については、「PutObject」をご参照ください。
名前 | タイプ | 説明 |
Cache-Control | String | オブジェクトがダウンロードされる際のウェブページのキャッシュ動作を指定します。詳細については、RFC 2616 をご参照ください。 デフォルト値:なし |
Content-Disposition | String | オブジェクトがダウンロードされる際のオブジェクト名を指定します。詳細については、RFC 2616 をご参照ください。 デフォルト値:なし |
Content-Encoding | String | オブジェクトがダウンロードされる際のコンテンツのエンコード形式を指定します。詳細については、RFC 2616 をご参照ください。 デフォルト値:なし |
Expires | String | 有効期限。詳細については、RFC 2616 をご参照ください。 デフォルト値:なし |
x-oss-forbid-overwrite | String | InitiateMultipartUpload 操作を呼び出すときに、同じ名前のオブジェクトを上書きするかどうかを指定します。宛先バケットでバージョン管理が有効または一時停止されている場合、x-oss-forbid-overwrite リクエストヘッダーは無効になります。この場合、同じ名前のオブジェクトは上書きされます。
x-oss-forbid-overwrite リクエストヘッダーを設定すると、秒間クエリ数 (QPS) のパフォーマンスが低下します。x-oss-forbid-overwrite リクエストヘッダーを多くの操作 (QPS > 1,000) で使用する場合は、ビジネスの中断を防ぐためにテクニカルサポートにご連絡ください。 |
x-oss-server-side-encryption | String | オブジェクトの各パートを暗号化するために使用されるサーバー側暗号化方式。 有効な値:AES256、KMS 重要 KMS 暗号化アルゴリズムを使用するには、まず Key Management Service (KMS) を有効化する必要があります。 リクエストでこのヘッダーを指定すると、このヘッダーはレスポンスに含まれます。OSS は、指定されたメソッドを使用してアップロードされた各パートを暗号化します。オブジェクトをダウンロードすると、x-oss-server-side-encryption ヘッダーがレスポンスに含まれ、その値はオブジェクトの暗号化アルゴリズムになります。 |
x-oss-server-side-encryption-key-id | String | KMS によって管理されるカスタマーマスターキー (CMK) の ID。 このヘッダーは、x-oss-server-side-encryption が KMS に設定されている場合にのみ有効です。 |
x-oss-storage-class | String | オブジェクトのストレージクラス。 このヘッダーをオブジェクトのアップロード時に指定すると、バケットのストレージクラスに関係なく、オブジェクトは指定されたストレージクラスに格納されます。たとえば、低頻度アクセス (IA) バケットにオブジェクトをアップロードする際に x-oss-storage-class を Standard に設定すると、オブジェクトは標準オブジェクトとして格納されます。 有効な値:
詳細については、「ストレージクラス」をご参照ください。 |
x-oss-tagging | String | オブジェクトのタグ。オブジェクトには複数のタグを指定できます。例:TagA=A&TagB=B 説明 タグキーと値は URL エンコードする必要があります。タグに等号 ( |
リクエストパラメーター
リクエストで encoding-type パラメーターを指定して、レスポンス内のオブジェクト名をエンコードできます。
名前 | タイプ | 説明 |
encoding-type | String | レスポンス内のオブジェクト名をエンコードするために使用されるメソッド。オブジェクト名は UTF-8 でエンコードされます。ただし、XML 1.0 標準では、ASCII 値が 0 から 10 の文字など、一部の制御文字はサポートされていません。XML 1.0 でサポートされていない制御文字を含むオブジェクト名の場合、encoding-type パラメーターを指定してレスポンス内のオブジェクト名をエンコードします。 デフォルト値:なし 有効な値:url |
レスポンス要素
OSS が InitiateMultipartUpload リクエストを受信すると、XML 形式でレスポンスを返します。レスポンスボディには、Bucket、Key、および UploadID 要素が含まれます。
名前 | タイプ | 説明 |
InitiateMultipartUploadResult | コンテナー | InitiateMultipartUpload リクエストの結果のコンテナー。 子ノード:Bucket、Key、UploadId、および EncodingType 親ノード:なし |
Bucket | String | マルチパートアップロードイベントのバケット名。 親ノード:InitiateMultipartUploadResult |
Key | String | マルチパートアップロードイベントのオブジェクト名。 親ノード:InitiateMultipartUploadResult |
UploadId | String | マルチパートアップロードイベントの一意の ID。後続の UploadPart および CompleteMultipartUpload の呼び出しでこの ID を使用します。 親ノード:InitiateMultipartUploadResult |
EncodingType | String | レスポンス内のオブジェクト名のエンコーディングタイプ。リクエストで encoding-type パラメーターが指定されている場合、レスポンス内のオブジェクト名はエンコードされます。 親ノード:InitiateMultipartUploadResult |
この操作には、共通のレスポンスヘッダーも含まれます。詳細については、「共通レスポンスヘッダー」をご参照ください。
例
リクエスト例
POST /multipart.data?uploads HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Wed, 22 Feb 2012 08:32:21 GMT x-oss-storage-class: Archive Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218eレスポンス例
HTTP/1.1 200 OK Content-Length: 230 Server: AliyunOSS Connection: keep-alive x-oss-request-id: 42c25703-7503-fbd8-670a-bda01eae**** 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>oss-example</Bucket> <Key>multipart.data</Key> <UploadId>0004B9894A22E5B1888A1E29F823****</UploadId> </InitiateMultipartUploadResult>
SDK
ossutil コマンドラインツール
この操作に対応する ossutil コマンドについては、「initiate-multipart-upload」をご参照ください。
エラーコード
エラーコード | HTTP ステータスコード | 説明 |
InvalidEncryptionAlgorithmError | 400 | AES256、KMS 以外のサーバー側暗号化方式が指定されています。 |
InvalidArgument | 400 | 各パートのアップロード時に x-oss-server-side-encryption リクエストヘッダーが追加されています。 |
InvalidArgument | 400 | 指定されたストレージクラスが無効です。 |
KmsServiceNotEnabled | 403 | KMS 暗号化アルゴリズムが使用されていますが、コンソールで KMS が有効化されていません。 |
FileAlreadyExists | 409 | このエラーの原因として、次のことが考えられます。
|