メニュー
Amazon Simple Storage Service
開発者ガイド (API Version 2006-03-01)

オブジェクトキーのリスト

キーはプレフィックス別にリストできます。関連するキーの名前に共通するプレフィックスを選択し、階層を区切る特殊文字でそれらのキーをマーキングすることで、リストオペレーションによってキーを階層別に選択および参照できます。これは、ファイルシステムにおいてディレクトリ内にファイルを格納するしくみに似ています。

Amazon S3 では、バケット内のキーを列挙するためのリストオペレーションを実行できます。キーはバケット別またはプレフィックス別にリストされます。例えば、すべての英単語のキーを含む「dictionary」という名前のバケットがあるとします。そして、そのバケット内の文字「q」で始まるキーをすべてリストするための呼び出しを行うとします。リストの結果は常に UTF-8 バイナリ順で返されます。

SOAP および REST のリストオペレーションではいずれも、条件に一致するキーの名前と、各キーによって識別されるオブジェクトに関する情報を含む XML ドキュメントが返されます。

注記

SOAP のサポートは HTTP 経由では廃止されましたが、HTTPS 経由では引き続き利用可能です。SOAP 用に Amazon S3 の新機能をサポートする予定はありません。REST API か AWS SDK を使用することをお勧めします。

特殊な区切り記号で終わるプレフィックスを共有するキーのグループは、リストの目的で、その共通のプレフィックスによってロールアップできます。このような機能によりアプリケーションでは、キーを階層的に構成および参照できるようになります。ファイルシステムにおいてファイルをディレクトリに分けて整理するのに似ています。例えば、英語以外の単語も含まれるように dictionary バケットを拡張するには、各単語にその言語と区切り記号のプレフィックスを付けることでキーを形成できます(「French/logical」など)。この命名スキームと階層リスト機能を使用すれば、フランス語の単語のリストだけを取得することもできます。また、対応している言語の最上位レベルのリストを参照することで、それより下の階層間に介在するすべてのキーを反復処理する必要もなくなります。

リストにおける階層の役割については、プレフィックスと区切り記号によるキーの階層的なリスト を参照してください。

リスト実装の効率

リストのパフォーマンスは、バケット内のキーの総数によって実質的な影響を受けることはありません。また、プレフィックス、マーカー、最大キー数、または区切り記号の引数の有無によって影響を受けることもありません。リスト操作などの全体的なバケットパフォーマンスの向上については、「リクエスト率およびリクエストパフォーマンスに関する留意事項」を参照してください。

複数ページの結果に対する反復処理

バケットに入れることのできるキーの数は実質的に無制限であるため、リストのクエリによっては結果が膨大な量になる可能性があります。大規模な結果セットを管理するため、Amazon S3 API ではページ分割をサポートして結果セットを複数のレスポンスに分割します。キーリストのレスポンスごとに最大 1,000 個のキーを含むページと、レスポンスが切り捨てられているかどうかを示すインジケータが返されます。すべてのキーを受信するまで、一連のキーリストリクエストを送信します。このページ分割は、AWS SDK ラッパーライブラリでも行うことができます。

以下の Java および .NET SDK 例は、バケット内のキーをリストする際のページ分割の使い方を示しています。

関連リソース