スキップしてコンテンツを表示

Amazon S3 へのリクエストレートに関する、プレフィックスと入れ子フォルダの相違点を教えてください。

所要時間1分
0

プレフィックスと入れ子フォルダにより、Amazon Simple Storage Service (Amazon S3) へのリクエストレートが受ける影響を把握したいと考えています。

解決策

注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI のエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

Amazon S3 バケットへのリクエストレートが増加している場合は、プレフィックスを使用して対処します。Amazon S3 コンソールには、プレフィックスがフォルダとして表示され、リクエストレートをサポートする分割プレフィックスは表示されない場合があります。詳細については、「オブジェクトの整理、リスト化、使用」を参照してください。

プレフィックス

キープレフィックスは、オブジェクト名の先頭に配置された文字列です。プレフィックス長は、オブジェクトキー名の最大値である 1,024 バイト長まで許容されます。例えば、バケット "BucketName" 内の次のオブジェクトは、"Project/"、"Project/WordFiles/"、"Project/WordFiles/1"、および "Project/WordFiles/4" という共通のプレフィックスを共有しています。

BucketName/Project/WordFiles/123.txt
BucketName/Project/WordFiles/145.txt
BucketName/Project/WordFiles/456.txt
BucketName/Project/WordFiles/489.txt

プレフィックスは区切り文字を使用して階層的に整理できます。区切り文字としてスラッシュ (/) やその他の文字を使用できます。Amazon S3 は、持続リクエストレートに基づいて、プレフィックス文字列の任意の時点で自動的にパーティションを作成できます。これらは分割プレフィックスとも呼ばれます。バケット内の分割プレフィックスは、1 秒あたり 3,500 件の PUT/COPY/POST/DELETE または 5,500 件の GET/HEAD リクエストをサポートできます。

バケットに設定できるプレフィックスの数に制限はありません。Amazon S3 でプレフィックスを使用する方法の詳細については、「プレフィックスを使用してオブジェクトを整理する」を参照してください。

フォルダ

Amazon S3 汎用バケットは、ファイルシステムのような階層ではなく、フラットな構造になっています。ただし、ナビゲーション用にオブジェクトをグループ化して表示するために、Amazon S3 コンソールはフォルダコンセプトをサポートしています。

Amazon S3 コンソールでフォルダを作成すると、Amazon S3 は 0 バイトのオブジェクトを作成します。オブジェクトにはフォルダ名に設定されたキーと、末尾にスラッシュ (/) 文字が付いています。例えば、Amazon S3 コンソールで "photos" という名前のフォルダを作成すると、photos/ というキーを持つ 0 バイトのオブジェクトが作成されます。コンソールは、フォルダの概念をサポートするためにこのオブジェクトを作成します。コンソールで作成されたこれらのフォルダは実際のオブジェクトであるため、head-object API は成功レスポンスを返します。

キー名の末尾にスラッシュ (/) が付いているオブジェクトは、Amazon S3 コンソールにフォルダとして表示されます。例えば、examplekeyname/ というキー名のオブジェクトは、コンソールにオブジェクトではなくフォルダとして表示されます。

フォルダは 2 つのスラッシュ (/) 文字の間の値です。例えば、ファイルを BucketName/Project/WordFiles/123.txt と命名して保存した場合、ProjectWordFiles の両方がフォルダです。パスを指定せずに 123.txt ファイルをバケットのルートに保存した場合、Amazon S3 はそのファイルを保存する際、フォルダを使用しません。

: Amazon S3 コンソールでは、フォルダ構造の区切り文字としてスラッシュ (/) のみを使用します。"-" などの他の文字はオブジェクトキー名の一部として扱われ、フォルダは作成されません。

: AWS CLI および aws s3 cp などの SDK コマンドでは、フォルダオブジェクトは作成されません。完全なキーパスを含むファイルオブジェクトのみが作成され、中間フォルダオブジェクトは作成されません。そのため、存在しないフォルダキーにアクセスしようとすると、ヘッドオブジェクト API は "NoSuchKey" エラーを返します。

コメントはありません

関連するコンテンツ