

# プレフィックスを使用してオブジェクトを整理する
<a name="using-prefixes"></a>

プレフィックスを使用して、Amazon S3 バケットに保存するデータを整理できます。プレフィックスは、オブジェクトキー名の先頭にある文字列です。プレフィックスには、オブジェクトキー名の最大長 (1,024 バイト) を条件として、任意の長さを指定できます。プレフィックスは、ディレクトリと同様の方法でデータを整理する方法と考えることができます。ただし、プレフィックスはディレクトリではありません。

プレフィックスで検索すると、指定されたプレフィックスで始まるキーだけに結果が限定されます。区切り記号を使用すると、リストオペレーションによって、共通のプレフィックスを共有するすべてのキーが単一の要約リスト結果にまとめられます。

プレフィックスと区切り記号のパラメータの目的は、キーを階層的に構成および参照できるようにすることです。そのためには、まずバケットで使用する区切り記号を選択します。スラッシュ (/) など、キーの名前には使われないような記号を使用します。別の文字を区切り文字として使用できます。スラッシュ (/) 文字に特徴はありませんが、非常に一般的なプレフィックスの区切り文字です。次に、階層に含まれるすべてのレベルを連結し、各レベルを区切り記号で区切ることで、キーの名前を構成します。

例えば、都市に関する情報を格納するとしたら、大陸、国、州または県の順に情報を整理するのが自然でしょう。通常、これらの名前には句読点が含まれないため、区切り記号としてスラッシュ (/) を使用できます。以下の例ではスラッシュ (/) 区切り記号を使用しています。
+ Europe/France/Nouvelle−Aquitaine/Bordeaux
+ North America/Canada/Quebec/Montreal
+ 北米/米国/ワシントン州/ベルビュー
+ 北米/米国/ワシントン州/シアトル

世界中の全都市のデータをこの方法で格納した場合、階層のないフラットなキーネームスペースは管理しにくくなります。リストオペレーションで `Prefix` と `Delimiter` を使用することで、データをリストするために作成した階層を利用できます。例えば、米国のすべての州をリストするには、`Delimiter='/'` および `Prefix='North America/USA/'` をセットします。データが存在するカナダのすべての州をリストするには、`Delimiter='/'` および `Prefix='North America/Canada/'` をセットします。

区切り文字、プレフィックス、ネストフォルダの詳細については、「[プレフィックスとネストされたフォルダの違い](https://repost.aws/knowledge-center/s3-prefix-nested-folders-difference)」を参照してください。

## プレフィックスと区切り記号を使用したオブジェクトのリスト化
<a name="prefixes-list-example"></a>

区切り記号付きのリストリクエストを発行すると、1 レベルの階層だけを参照でき、それより深いレベルで入れ子にされている (場合によっては数百万もの) キーはスキップおよび集約されます。例えば、次のキーを持つバケット (*amzn-s3-demo-bucket*) があるとします。

`sample.jpg` 

`photos/2006/January/sample.jpg` 

`photos/2006/February/sample2.jpg` 

`photos/2006/February/sample3.jpg` 

`photos/2006/February/sample4.jpg` 

このサンプルバケットはルートレベルに `sample.jpg` オブジェクトだけを持ちます。バケット内のルートレベルオブジェクトだけを一覧表示するには、バケットに対する GET リクエストをスラッシュ (`/`) の区切り文字と共に送信します。Simple Storage Service (Amazon S3) からのレスポンスでは `sample.jpg` オブジェクトキーが返されます。このキーには `/` の区切り文字が含まれないためです。その他すべてのキーには区切り文字が含まれます。Amazon S3 によってこれらのキーがグループ化され、特定のプレフィックス値を持つ 1 つの `CommonPrefixes` 要素が返されます。この場合のプレフィックス値は `photos/` であり、これはキーの先頭から、指定した区切り文字の最初の出現までのサブ文字列です。

**Example**  

```
 1. <ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
 2.   <Name>amzn-s3-demo-bucket</Name>
 3.   <Prefix></Prefix>
 4.   <Marker></Marker>
 5.   <MaxKeys>1000</MaxKeys>
 6.   <Delimiter>/</Delimiter>
 7.   <IsTruncated>false</IsTruncated>
 8.   <Contents>
 9.     <Key>sample.jpg</Key>
10.     <LastModified>2011-07-24T19:39:30.000Z</LastModified>
11.     <ETag>&quot;d1a7fb5eab1c16cb4f7cf341cf188c3d&quot;</ETag>
12.     <Size>6</Size>
13.     <Owner>
14.       <ID>75cc57f09aa0c8caeab4f8c24e99d10f8e7faeebf76c078efc7c6caea54ba06a</ID>
15.     </Owner>
16.     <StorageClass>STANDARD</StorageClass>
17.   </Contents>
18.   <CommonPrefixes>
19.     <Prefix>photos/</Prefix>
20.   </CommonPrefixes>
21. </ListBucketResult>
```

プログラムによるオブジェクトキーのリスト化の詳細については、 を参照してください。[プログラムによるオブジェクトキーのリスト化](ListingKeysUsingAPIs.md)