マルチパートアップロード
R2は、いくつかの制限付きでS3 APIのマルチパートアップロード ↗をサポートしています。
オブジェクトのパートサイズは、少なくとも5MiB以上で、最大5GiB以下でなければなりません。 最後のパートを除くすべてのパートは同じサイズでなければなりません。 最後のパートには最小サイズはありませんが、他のパートと同じかそれより小さい必要があります。
最大パート数は10,000です。
ほとんどのS3クライアントは、これらの期待に準拠しています。
マルチパートアップロードのデフォルトのオブジェクトライフサイクルポリシーは、未完了のアップロードが自動的に7日間で中止されることです。 これはカスタムライフサイクルポリシーを設定することで変更できます。
マルチパートでアップロードされたオブジェクトのETagは、PutObjectでアップロードされたものとは異なります。
2023年6月21日以降に作成されたアップロードでは、R2のマルチパートETagはS3の動作を模倣します。 各個別のパートのETagは、そのパートの内容のMD5ハッシュです。 完成したマルチパートオブジェクトのETagは、各構成パートのMD5合計を連結した後、ハイフンとアップロードされたパートの数を付加したハッシュです。
例えば、2つのパートを持つマルチパートアップロードを考えてみましょう。 それぞれのETagがbce6bf66aeb76c7040fdd5f4eccb78e6と8165449fc15bbf43d3b674595cbcc406である場合、完成したマルチパートアップロードのETagはf77dc0eecdebcd774a2a22cb393ad2ff-2になります。
バイナリのMD5合計自体は連結されてから合計され、16進数の表現ではありません。 例えば、上記の例をコマンドラインで検証するには、次のようにする必要があります:
echo -n $(echo -n bce6bf66aeb76c7040fdd5f4eccb78e6 | xxd -r -p -)\$(echo -n 8165449fc15bbf43d3b674595cbcc406 | xxd -r -p -) | md5sum