コンテンツにスキップ

マルチパートアップロード

R2は、いくつかの制限付きでS3 APIのマルチパートアップロードをサポートしています。

制限事項

オブジェクトのパートサイズは、少なくとも5MiB以上で、最大5GiB以下でなければなりません。 最後のパートを除くすべてのパートは同じサイズでなければなりません。 最後のパートには最小サイズはありませんが、他のパートと同じかそれより小さい必要があります。

最大パート数は10,000です。

ほとんどのS3クライアントは、これらの期待に準拠しています。

ライフサイクル

マルチパートアップロードのデフォルトのオブジェクトライフサイクルポリシーは、未完了のアップロードが自動的に7日間で中止されることです。 これはカスタムライフサイクルポリシーを設定することで変更できます。

ETags

マルチパートでアップロードされたオブジェクトのETagは、PutObjectでアップロードされたものとは異なります。

2023年6月21日以降に作成されたアップロードでは、R2のマルチパートETagはS3の動作を模倣します。 各個別のパートのETagは、そのパートの内容のMD5ハッシュです。 完成したマルチパートオブジェクトのETagは、各構成パートのMD5合計を連結した後、ハイフンとアップロードされたパートの数を付加したハッシュです。

例えば、2つのパートを持つマルチパートアップロードを考えてみましょう。 それぞれのETagがbce6bf66aeb76c7040fdd5f4eccb78e68165449fc15bbf43d3b674595cbcc406である場合、完成したマルチパートアップロードのETagはf77dc0eecdebcd774a2a22cb393ad2ff-2になります。

バイナリのMD5合計自体は連結されてから合計され、16進数の表現ではありません。 例えば、上記の例をコマンドラインで検証するには、次のようにする必要があります:

echo -n $(echo -n bce6bf66aeb76c7040fdd5f4eccb78e6 | xxd -r -p -)\
$(echo -n 8165449fc15bbf43d3b674595cbcc406 | xxd -r -p -) | md5sum