マルチパートアップロードを使用してデータをアップロードするには、まず InitiateMultipartUpload 操作を呼び出して、OSS でマルチパートアップロードタスクを開始します。
注意事項
この操作は、マルチパートアップロードタスクを識別する、グローバルに一意のアップロード ID を OSS から返します。この ID は、アップロードの中止やクエリなど、後続の操作で使用できます。
InitiateMultipartUpload リクエストは、同じ名前の既存のオブジェクトには影響しません。
InitiateMultipartUpload操作の認証署名を計算する場合、CanonicalizedResourceに?uploadsを追加する必要があります。マルチパートアップロードタスクを開始するには、
oss:PutObject権限が必要です。詳細については、「RAM ユーザーへのカスタムポリシーの付与」をご参照ください。
権限
デフォルトでは、Alibaba Cloud アカウントは完全な権限を持っています。Alibaba Cloud アカウント配下の Resource Access Management (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 | オブジェクトがダウンロードされる際の Web ページのキャッシュ動作を指定します。詳細については、RFC 2616 をご参照ください。 デフォルト値:なし |
Content-Disposition | String | オブジェクトがダウンロードされる際のオブジェクト名を指定します。詳細については、RFC 2616 をご参照ください。 デフォルト値:なし |
Content-Encoding | String | オブジェクトがダウンロードされる際のコンテンツのエンコード形式を指定します。詳細については、RFC 2616 をご参照ください。 デフォルト値:なし |
Expires | String | 有効期限。詳細については、RFC 2616 をご参照ください。 デフォルト値:なし |
x-oss-forbid-overwrite | String | 同じ名前のオブジェクトを上書きするかどうかを指定します。送信先バケットでバージョン管理が有効または一時停止されている場合、x-oss-forbid-overwrite リクエストヘッダーは無視され、オブジェクトは上書きできます。
x-oss-forbid-overwrite リクエストヘッダーを設定すると、秒間クエリ数 (QPS) のパフォーマンスが低下します。そのため、x-oss-forbid-overwrite リクエストヘッダーを必要とする操作が多数ある場合 (QPS > 1000)、ビジネスへの影響を避けるためにテクニカルサポートにご連絡ください。 |
x-oss-server-side-encryption | String | オブジェクトの各パートに対するサーバー側暗号化アルゴリズム。 有効な値:AES256、KMS 重要 KMS 暗号化を使用するには、Key Management Service (KMS) をアクティベートする必要があります。 リクエストでこのヘッダーを指定すると、OSS はレスポンスにこのヘッダーを含めます。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 | オブジェクトのタグを指定します。オブジェクトには複数のタグを指定できます。例: 説明 タグのキーと値は URL エンコードする必要があります。タグに等号 ( |
x-oss-object-worm-mode | String | オブジェクトの保持ポリシーモード。値を |
x-oss-object-worm-retain-until-date | String | オブジェクトの保持期限日。値は |
リクエストパラメーター
encoding-type クエリパラメーターを使用して、レスポンス内のオブジェクトキーをエンコードします。
パラメーター | タイプ | 説明 |
encoding-type | String | レスポンス内のオブジェクトキーのエンコード方式を指定します。URL エンコードのみがサポートされています。オブジェクトキーは UTF-8 です。ただし、XML 1.0 標準では、ASCII 値が 0 から 10 の文字などの特定の制御文字はサポートされていません。オブジェクトキーにこのような文字が含まれている場合は、 デフォルト値:なし 有効な値:url |
レスポンス要素
OSS が InitiateMultipartUpload リクエストを受信すると、XML 形式のレスポンスボディを返します。レスポンスボディには、Bucket、Key、および UploadId 要素が含まれます。
要素 | タイプ | 説明 |
InitiateMultipartUploadResult | コンテナ |
子要素:Bucket、Key、UploadId、および EncodingType 親要素:なし |
Bucket | String | マルチパートアップロードタスクが開始されたバケットの名前。 親要素:InitiateMultipartUploadResult |
Key | String | マルチパートアップロードタスクのオブジェクトの名前。 親要素:InitiateMultipartUploadResult |
UploadId | String | マルチパートアップロードタスクを識別する一意の ID。この ID は、後続の UploadPart および CompleteMultipartUpload 操作の呼び出しに必要です。 親要素:InitiateMultipartUploadResult |
EncodingType | String | レスポンスで使用されるエンコードタイプ。リクエストで 親要素: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 CLI
InitiateMultipartUpload 操作に対応する ossutil コマンドについては、「initiate-multipart-upload」をご参照ください。
エラーコード
エラーコード | HTTP ステータスコード | 説明 |
InvalidEncryptionAlgorithmError | 400 |
|
InvalidArgument | 400 | パートをアップロードするリクエストで |
InvalidArgument | 400 | 指定されたストレージクラスが無効です。 |
KmsServiceNotEnabled | 403 | 暗号化アルゴリズムとして |
FileAlreadyExists | 409 | このエラーは、以下のいずれかの理由で返されます:
|