

# Amazon S3 汎用バケットの一覧表示
<a name="list-buckets"></a>

所有している汎用バケットのリストを返すには、[ListBuckets](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.htm) を使用できます。バケットは、Amazon S3 コンソール、AWS Command Line Interface、または AWS SDK を使用して一覧表示できます。AWS CLI、AWS SDK、Amazon S3 REST API を使用した `ListBuckets` リクエストの場合、バケットのデフォルトのサービスクォータ (10,000 バケット) を使用する AWS アカウント は、ページ分割されたリクエストとページ分割されていないリクエストの両方をサポートしています。アカウント内のバケットの数に関係なく、1～10,000 個のバケットのページサイズを作成して、すべてのバケットを一覧表示できます。ページ分割されたリクエストの場合、`ListBuckets` リクエストはバケット名と各バケットに対応する AWS リージョン の両方を返します。次の AWS Command Line Interfaceと AWS SDK の例は、`ListBuckets` リクエストでページ分割を使用する方法を示しています。一部の AWS SDK はページ分割をサポートしていることに注意してください。

**アクセス許可**  
すべての汎用バケットを一覧表示するには、`s3:ListAllMyBuckets` アクセス許可が必要です。`HTTP Access Denied (403 Forbidden)` エラーが発生した場合は、「[Amazon S3 でのアクセス拒否 (403 Forbidden) エラーのトラブルシューティング](troubleshoot-403-errors.md)」を参照してください。

**重要**  
ページ分割された `ListBuckets` リクエストのみを使用することを強くお勧めします。ページ分割されていない `ListBuckets` リクエストは、デフォルトの汎用バケットクォータが 10,000 に設定されている AWS アカウントでのみサポートされています。承認された汎用バケットクォータが 10,000 を超えている場合は、ページ分割された `ListBuckets` リクエストを送信してアカウントのバケットを一覧表示する必要があります。汎用バケットクォータが 10,000 を超えている AWS アカウントの場合、ページ分割されていないすべての `ListBuckets` リクエストは拒否されます。

## S3 コンソールの使用
<a name="access-bucket-example-console"></a>

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を開きます。

1. 左のナビゲーションペインで、**[汎用バケット]** を選択します。

1. **[汎用バケット]** タブには、汎用バケットのリストが表示されます。

1. バケットを名前で検索するには、**[バケットを名前で検索]** フィールドにバケット名を入力します。

## の使用AWS CLI
<a name="access-bucket-example-cli"></a>

AWS CLI を使用して汎用バケットのリストを生成するには、`ls` コマンドまたは `list-buckets` コマンドを使用できます。以下の例は、ページ分割された `list-buckets` リクエストとページ分割されていない `ls` リクエストを作成する方法を示しています。これらの例を使用するには、*ユーザー入力プレースホルダー*を置き換えます。

**Example – アカウント内のすべてのバケットを `ls` で一覧表示する (ページ分割なし)**  
次のコマンド例では、ページ分割されていない 1 回の呼び出しで、アカウント内のすべての汎用バケットを一覧表示します。この呼び出しは、アカウント内のすべてのバケットのリスト (最大 10,000 件の結果) を返します。  

```
$ aws s3 ls
```
詳細および例については、「[バケットおよびオブジェクトを一覧表示する](https://docs.aws.amazon.com/cli/latest/userguide/cli-services-s3-commands.html#using-s3-commands-listing-buckets)」を参照してください。  


**Example – アカウント内のすべてのバケットを `ls` で一覧表示する (ページ分割)**  
次のコマンド例では、1 つ以上のページ分割された呼び出しを実行して、アカウント内のすべての汎用バケットを一覧表示し、ページあたり 100 個のバケットを返します。  

```
$ aws s3 ls --page-size 100
```
詳細および例については、「[バケットおよびオブジェクトを一覧表示する](https://docs.aws.amazon.com/cli/latest/userguide/cli-services-s3-commands.html#using-s3-commands-listing-buckets)」を参照してください。  


**Example — アカウント内のすべてのバケットを一覧表示する (ページ分割）**  
次の例は、アカウント内のすべての汎用バケットを一覧表示するためのページ分割された `list-buckets` コマンドを示しています。`--max-items` オプションおよび `--page-size` オプションでは、一覧表示するバケットの数をページあたり 100 個に制限します。  

```
$ aws s3api list-buckets /
    --max-items 100 / 
    --page-size 100
```
出力の項目数 (`--max-items`) が基本の API コールが返す合計項目数より少ない場合、出力には `starting-token` 引数で指定した継続トークンが含まれます。このトークンを後続のコマンドに渡して、次の項目のセットを取得できます。次の例は、前の例で返された `starting-token` 値を使用する方法を示しています。`starting-code` を指定して、次の 100 個のバケットを取得できます。  

```
$ aws s3api list-buckets / 
    --max-items 100 / 
    --page-size 100 /
    --starting-token eyJNYXJrZXIiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAxfQ==
```


**Example — AWS リージョン 内のすべてのバケットを一覧表示する (ページ分割）**  
次のコマンド例では、`--bucket-region`パラメータを使用して、`us-east-2` リージョンにあるアカウント内のバケットを最大 100 個一覧表示します。`--bucket-region` パラメータで指定した値とは異なるリージョンエンドポイントにリクエストを行うことは、サポートされていません。例えば、`us-east-2` のバケットに対するレスポンスを制限する場合は、`us-east-2` のエンドポイントにリクエストを行う必要があります。  

```
$ aws s3api list-buckets /
    --region us-east-2 /
    --max-items 100 / 
    --page-size 100 /
    --bucket-region us-east-2
```


**Example — 特定のバケット名のプレフィックスで始まるすべてのバケットを一覧表示する (ページ分割)**  
次のコマンド例では、*amzn-s3-demo-bucket* プレフィックスで始まる名前を持つバケットを最大 100 個一覧表示します。  

```
$ aws s3api list-buckets /
    --max-items 100 /
    --page-size 100 /
    --prefix amzn-s3-demo-bucket
```

## AWS SDK の使用
<a name="access-bucket-example-sdk"></a>

次の例は、AWS SDK を使用して汎用バケットを一覧表示する方法を示しています。

------
#### [ SDK for Python ]

**Example – ListBuckets リクエスト (ページ分割）**  

```
import boto3

s3 = boto3.client('s3')
response = s3.list_buckets(MaxBuckets=100)
```

**Example – ListBuckets レスポンス (ページ分割）**  

```
import boto3

s3 = boto3.client('s3')
response = s3.list_buckets(MaxBuckets=1,ContinuationToken="eyJNYXJrZXIiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAxfQ==EXAMPLE--")
```

------
#### [ SDK for Java ]

AWS SDK for Java を使用してバケットを一覧表示する方法の例については、「*Amazon S3 API リファレンス*」の「[List buckets](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_ListBuckets_section.html)」を参照してください。

------
#### [ SDK for Go ]

```
package main
import (
 "context"
 "fmt"
 "log"
 "github.com/aws/aws-sdk-go-v2/aws"
 "github.com/aws/aws-sdk-go-v2/config"
 "github.com/aws/aws-sdk-go-v2/service/s3"
)
func main() {
 cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithRegion("us-east-2"))
 if err != nil {
  log.Fatal(err)
 }
 client := s3.NewFromConfig(cfg)
 maxBuckets := 1000
 resp, err := client.ListBuckets(context.TODO(), management portals3.ListBucketsInput{MaxBuckets: aws.Int32(int32(maxBuckets))})
 if err != nil {
  log.Fatal(err)
 }
 fmt.Println("S3 Buckets:")
 for _, bucket := range resp.Buckets {
     fmt.Println("- Name:", *bucket.Name)
     fmt.Println("-BucketRegion", *bucket.BucketRegion)
 }
 fmt.Println(resp.ContinuationToken == nil)
 fmt.Println(resp.Prefix == nil)
}
```

------