Amazon S3 汎用バケットの一覧表示 - Amazon Simple Storage Service

Amazon S3 汎用バケットの一覧表示

所有している汎用バケットのリストを返すには、ListBuckets を使用できます。バケットは、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) エラーのトラブルシューティング」を参照してください。

重要

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

  1. AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

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

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

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

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

例 – アカウント内のすべてのバケットを ls で一覧表示する (ページ分割なし)

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

$ aws s3 ls

詳細および例については、「バケットおよびオブジェクトを一覧表示する」を参照してください。

例 – アカウント内のすべてのバケットを ls で一覧表示する (ページ分割)

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

$ aws s3 ls --page-size 100

詳細および例については、「バケットおよびオブジェクトを一覧表示する」を参照してください。

例 — アカウント内のすべてのバケットを一覧表示する (ページ分割)

次の例は、アカウント内のすべての汎用バケットを一覧表示するためのページ分割された 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==

例 — 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

例 — 特定のバケット名のプレフィックスで始まるすべてのバケットを一覧表示する (ページ分割)

次のコマンド例では、amzn-s3-demo-bucket プレフィックスで始まる名前を持つバケットを最大 100 個一覧表示します。

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

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

SDK for Python
例 – ListBuckets リクエスト (ページ分割)
import boto3 s3 = boto3.client('s3') response = s3.list_buckets(MaxBuckets=100)
例 – ListBuckets レスポンス (ページ分割)
import boto3 s3 = boto3.client('s3') response = s3.list_buckets(MaxBuckets=1,ContinuationToken="eyJNYXJrZXIiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAxfQ==EXAMPLE--")
SDK for Java
import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.Bucket; import com.amazonaws.services.s3.model.ListBucketsPaginatedRequest; import com.amazonaws.services.s3.model.ListBucketsPaginatedResult; import java.util.List; public class ListBuckets { public static void main(String[] args) { final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion(Regions.DEFAULT_REGION).build(); ListBucketsPaginatedRequest listBucketsPaginatedRequest = new ListBucketsPaginatedRequest().withMaxBuckets(1); ListBucketsPaginatedResult listBucketsPaginatedResult = s3.listBuckets(listBucketsPaginatedRequest); List<Bucket> buckets = listBucketsPaginatedResult.getBuckets(); System.out.println("Your Amazon S3 buckets are:"); for (Bucket b : buckets) { System.out.println("* " + b.getName() + " region: " + b.getRegion()); } System.out.println("continuation token: " + listBucketsPaginatedResult.getContinuationToken()); } }
SDK for Java 2.x
import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.services.s3.model.Bucket; import software.amazon.awssdk.services.s3.model.ListBucketsRequest; import software.amazon.awssdk.services.s3.model.ListBucketsResponse; import java.util.List; public class ListBuckets { public static void main(String[] args) { // Create an S3 client S3Client s3 = S3Client.builder() .region(Region.US_EAST_1) // Replace with your preferred region .credentialsProvider(DefaultCredentialsProvider.create()) .build(); try { // List buckets ListBucketsRequest listBucketsRequest = ListBucketsRequest.builder() .maxBuckets(10) .build(); ListBucketsResponse listBucketsResponse = s3.listBuckets(listBucketsRequest); List<Bucket> buckets = listBucketsResponse.buckets(); // Print bucket names System.out.println("Your Amazon S3 buckets are:"); for (Bucket bucket : buckets) { System.out.println(bucket.name()); System.out.println(bucket.getBucketRegion()); } } catch (Exception e) { System.err.println("Error listing buckets: " + e.getMessage()); e.printStackTrace(); } finally { // Close the S3 client to release resources s3.close(); } } }
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) }