第5章 ノートブックセルを使用して利用可能な Amazon S3 バケットのファイルを一覧表示
バケットのオブジェクトを一覧表示し、アクセス可能なバケットにある利用可能なファイルを確認できます。バケットは通常のファイルシステムの代わりにオブジェクトストレージを使用するため、オブジェクトの命名は通常のファイル命名と異なります。バケットのオブジェクトはキーによって常に認識されます。これはバケットの完全パスとファイル自体の名前で設定されます。
前提条件
- ノートブックの前のセルで Amazon S3 クライアントを設定する。詳細は、ノートブックセルを使用した Amazon S3 クライアントの作成 を参照してください。
手順
新しいノートブックセルを作成し、バケットのオブジェクトを一覧表示します。以下に例を示します。
bucket_name = 'std-user-bucket1' s3_client.list_objects_v2(Bucket=bucket_name)
以下の形式で複数のオブジェクトが返されます。
{'Key': 'docker/registry/v2/blobs/sha256/00/0080913dd3f10aadb34asfgsgsdgasdga072049c93606b98bec84adb259b424f/data', 'LastModified': datetime.datetime(2021, 4, 22, 1, 26, 1, tzinfo=tzlocal()), 'ETag': '"6e02fad2deassadfsf900a4bd7344ffe"', 'Size': 4052, 'StorageClass': 'STANDARD'}完全な応答ではなくキーのみを出力するなどして、この一覧の読み取りを容易化できます。
bucket_name = 'std-user-bucket1' for key in s3_client.list_objects_v2(Bucket=bucket_name)['Contents']: print(key['Key'])これにより、以下のような出力が返されます。
docker/registry/v2/blobs/sha256/00/0080913dd3f10aadb34asfgsgsdgasdga072049c93606b98bec84adb259b424f/data
また、クエリーをフィルターして、特定の "パス" またはファイル名などを一覧表示できます。以下はその例です。
bucket_name = 'std-user-bucket1' for key in s3_client.list_objects_v2(Bucket=bucket_name,Prefix='<start_of_file_path>')['Contents']: print(key['Key'])前の例で、
<start_of_file_path>を独自の値に置き換えます。