ビデオ共有サービスで、ユーザーが最大5GBの動画ファイルをS3にアップロードする機能を開発しています。通常のPutObjectでは以下の問題があります: ①単一のHTTPリクエストに対するS3の上限(5GB)に近い ②アップロード途中にネットワーク障害が発生すると最初からやり直しになる これを解決する最も適切な実装はどれですか?(2つ選択)
マルチパートアップロードは大容量ファイルを複数パートに分割してアップロードし、完了後にCompleteMultipartUploadで結合します。失敗したパートのみ再送できるためネットワーク障害への耐性が高く、最大5TBのオブジェクトに対応します。 選択肢AのS3マルチパートアップロードAPIを直接使用する方法は、アップロードIDや各パートのETagを自前で管理する必要がありますが、5GB超のファイルにも対応し障害時の部分再送が可能です。 選択肢BのAWS SDKの高レベルAPI(TransferManager等)はマルチパートアップロードの分割・再試行・結合処理を自動化し、実装コストを大幅に削減できます。 選択肢CのS3 Transfer Accelerationはエッジロケーション経由の高速転送であり、障害回復やファイルサイズ上限への対応とは別機能です。 選択肢DのLambda経由のストリーミングアップロードはLambdaのペイロード上限(同期6MB/非同期256KB)があり大容量ファイルには不適です。