Amazon S3 に関する考慮事項 - AWS SDK for JavaScript

AWS SDK for JavaScript V3 APIリファレンスガイドでは、バージョン 3 (V3) のすべてのAPIオペレーションについて詳しく説明しています AWS SDK for JavaScript 。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon S3 に関する考慮事項

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

v2 では、Amazon S3 クライアントには、Amazon S3 が提供するマルチパートアップロード機能を備えた大きなオブジェクトのアップロードをサポートする upload()オペレーションが含まれています。

v3 では、 @aws-sdk/lib-storageパッケージを使用できます。v2 upload()オペレーションで提供されるすべての機能をサポートし、Node.js とブラウザの両方のランタイムをサポートします。

Amazon S3 署名付き URL

v2 では、Amazon S3 クライアントには、ユーザーが Amazon S3 からオブジェクトをアップロードまたはダウンロードするために使用できる URL を生成する getSignedUrl()および getSignedUrlPromise()オペレーションが含まれています。 Amazon S3

v3 では、 @aws-sdk/s3-request-presignerパッケージを使用できます。このパッケージには、 getSignedUrl()および getSignedUrlPromise()オペレーションの両方の関数が含まれています。このブログ記事では、このパッケージの詳細について説明します。

Amazon S3 リージョンリダイレクト

間違ったリージョンが Amazon S3 クライアントに渡され、後続の PermanentRedirect (ステータス 301) エラーがスローされた場合、v3 の Amazon S3 クライアントはリージョンリダイレクト (v2 の Amazon S3 グローバルクライアントと呼ばれていました) をサポートします。クライアント設定で followRegionRedirectsフラグを使用して、Amazon S3 クライアントにリージョンリダイレクトをフォローさせ、グローバルクライアントとしてその機能をサポートさせることができます。

注記

この機能は、ステータスが 301 のPermanentRedirectエラーを受信すると、失敗したリクエストが修正されたリージョンで再試行されるため、レイテンシーが増加する可能性があることに注意してください。この機能は、バケットのリージョンが事前にわからない場合にのみ使用してください (複数可)。

Amazon S3 ストリーミングとバッファされたレスポンス

v3 SDK は、潜在的に大きなレスポンスをバッファしないことを優先します。これは、v2 で を返したが、v3 で を返す Amazon S3 GetObjectオペレーションStreamでよく発生します。 Buffer

Node.js では、ソケットを解放して接続を新しいトラフィックに開放し続けるために、ストリームまたはガベージを消費してクライアントまたはそのリクエストハンドラーを収集する必要があります。

// v2 const get = await s3.getObject({ ... }).promise(); // this buffers consumes the stream already.
// v3, consume the stream to free the socket const get = await s3.getObject({ ... }); // object .Body has unconsumed stream const str = await get.Body.transformToString(); // consumes the stream // other ways to consume the stream include writing it to a file, // passing it to another consumer like an upload, or buffering to // a string or byte array.

詳細については、ソケットの枯渇に関するセクションを参照してください。