マルチパート
対象リージョン:東日本第3/西日本第3
利用者が分割した大容量のオブジェクトを、1つのオブジェクトとしてアップロードできる機能を提供します。
マルチパートアップロードは5MB~5TBのオブジェクトに使用できます。
マルチパートアップロードする分割データのサイズは5MiB(5,242,880Byte)~5GiB(5,368,709,120Byte)までです。ただし、最後にアップロードされるデータサイズは5MiB未満でも構いません。なお、分割データはバイナリモードでバイト単位に分割してください。
-
APIのリクエストには署名バージョン4の署名情報を付加する必要があります。署名情報の詳細については「署名情報」を参照してください。
-
1つのバケットに対して同時に実行するマルチパートアップロードが1,000件を超えないようにしてください。
1,000件を超えると、そのバケットに対する List Multipart Uploadsのクエリで完全な結果が返却されないことがあります。
-
マルチパートアップロードが15日以内に完了しない場合、関連するすべてのデータがシステムから削除されます。
-
最後にアップロードする分割データ以外に5MiB未満のサイズのデータを指定した場合、マルチパートの完了処理でステータスコードは200ですが、同時に「Multipart part too small. All multipart parts must be 5 MiB or larger except for the last part which can be any size.」のメッセージが出力され、アップロードは失敗しています。
-
アップロードされた分割データの情報は、非同期でオブジェクトストレージ全体に同期されます。 そのため、アップロードされたすべての分割データの情報がオブジェクトストレージに完全に同期される前にマルチパートアップロードの完了を実行すると、InvalidPartエラーで失敗することがあります。 また、その際にステータスコードが200で返却されることがあります。
パート番号と ETag値の組合せが正しいときに InvalidPartエラーで失敗した場合は、数秒待ってからマルチパートアップロードの完了を再実行してください。
提供機能
機能 | 説明 | |
---|---|---|
マルチパートアップロードの実行 | マルチパートアップロードの開始 |
マルチパートアップロードに必要なアップロードIDを取得します。続けて、「分割したデータのアップロード」を実行してください。 アップロードIDはマルチパートアップロードにおいて一意です。 |
分割したデータのアップロード |
分割したデータをアップロードします。アップロードIDと分割したデータごとに1~10000までの任意のパート番号が必要です。 分割したデータがアップロードされるたびに Etagヘッダーが返却されます。この ETag値とパート番号は、分割したデータの結合に必要です。 すべてのデータのアップロードが完了したら、「マルチパートアップロードの完了」を実行してください。 |
|
マルチパートアップロードの完了 |
アップロードされた分割データを結合し、1つのオブジェクトを作成します。データはパート番号の昇順に結合されます。アップロードIDと分割データのリスト(パート番号と ETag値の組合せ)が必要です。 |
|
マルチパートアップロードの中止 |
マルチパートアップロードを中止します。 |
|
マルチパートの一覧 |
マルチパートアップロードの実行でアップロードされた分割データを一覧表示します。 完了または中止されたマルチパートアップロードのアップロードIDを指定した場合は、以下のヘッダーが返却されます。 HTTP/1.1 404 Not Found |
マルチパートによるオブジェクトのアップロード例
アクセスキー・シークレットキーの払い出しで払い出されたキーを使用してオブジェクトを作成します。
以下は、署名付きURLを利用してテナント(<TEST-TENANT>)内のバケット(<TEST-BUCKET>)に、分割したデータ(オブジェクト番号(<partNumber>)とアップロードID(<uploadId))を1つのオブジェクト(<TEST-OBJ>)としてアップロードする例です。署名付きURLについては署名情報を参照してください。
[root]# curl -v -X PUT https://objectstorage-s.jp-east-3.cloud.global.fujitsu.com/<TEST-BUCKET>/<TEST-OBJ>?partNumber=<partNumber>&uploadId=<uploadId><署名付きURL> -T <TEST-OBJ>
テナントの作成~オブジェクトのアップロードまでの主な流れ
テナントの作成 > グループの作成 > ユーザーの作成 > グループにユーザーを所属 > アクセスキー・シークレットキーの払い出し > バケットの作成 > オブジェクトのアップロードまたはオブジェクトを分割してアップロード