S3 でバケットの中身を確認するにはどうすればよいboto3
ですか? (つまり、する"ls"
)?
次のことを行います。
import boto3
s3 = boto3.resource('s3')
my_bucket = s3.Bucket('some/path/')
戻り値:
s3.Bucket(name='some/path/')
その内容を見るにはどうすればよいですか?
S3 でバケットの中身を確認するにはどうすればよいboto3
ですか? (つまり、する"ls"
)?
次のことを行います。
import boto3
s3 = boto3.resource('s3')
my_bucket = s3.Bucket('some/path/')
戻り値:
s3.Bucket(name='some/path/')
その内容を見るにはどうすればよいですか?
コンテンツを表示する 1 つの方法は次のとおりです。
for my_bucket_object in my_bucket.objects.all():
print(my_bucket_object)
これは「ls」に似ていますが、接頭辞フォルダーの規則を考慮せず、バケット内のオブジェクトを一覧表示します。キー名の一部であるプレフィックスを除外することは、読者に任されています。
Python 2 の場合:
from boto.s3.connection import S3Connection
conn = S3Connection() # assumes boto.cfg setup
bucket = conn.get_bucket('bucket_name')
for obj in bucket.get_all_keys():
print(obj.key)
Python 3 では:
from boto3 import client
conn = client('s3') # again assumes boto.cfg setup, assume AWS S3
for key in conn.list_objects(Bucket='bucket_name')['Contents']:
print(key['Key'])
#To print all filenames in a bucket
import boto3
s3 = boto3.client('s3')
def get_s3_keys(bucket):
"""Get a list of keys in an S3 bucket."""
resp = s3.list_objects_v2(Bucket=bucket)
for obj in resp['Contents']:
files = obj['Key']
return files
filename = get_s3_keys('your_bucket_name')
print(filename)
#To print all filenames in a certain directory in a bucket
import boto3
s3 = boto3.client('s3')
def get_s3_keys(bucket, prefix):
"""Get a list of keys in an S3 bucket."""
resp = s3.list_objects_v2(Bucket=bucket, Prefix=prefix)
for obj in resp['Contents']:
files = obj['Key']
print(files)
return files
filename = get_s3_keys('your_bucket_name', 'folder_name/sub_folder_name/')
print(filename)
更新: 最も簡単な方法は、awswrangler を使用することです
import awswrangler as wr
wr.s3.list_objects('s3://bucket_name')
ここに解決策があります
import boto3
s3=boto3.resource('s3')
BUCKET_NAME = 'Your S3 Bucket Name'
allFiles = s3.Bucket(BUCKET_NAME).objects.all()
for file in allFiles:
print(file.key)
次のようにして行うこともできます。
csv_files = s3.list_objects_v2(s3_bucket_path)
for obj in csv_files['Contents']:
key = obj['Key']
cloudpathlib
cloudpathlib
pathlib
シンプルなAPI を使用して AWS S3 (および Azure BLOB ストレージ、GCS など) と対話できるように、便利なラッパーを提供します。でインストールできますpip install "cloudpathlib[s3]"
。
orと同様に、ディレクトリの内容を一覧表示するためにorをpathlib
使用できます。glob
iterdir
コピーして貼り付けて実行できるパブリック AWS S3 バケットの例を次に示します。
from cloudpathlib import CloudPath
s3_path = CloudPath("s3://ladi/Images/FEMA_CAP/2020/70349")
# list items with glob
list(
s3_path.glob("*")
)[:3]
#> [ S3Path('s3://ladi/Images/FEMA_CAP/2020/70349/DSC_0001_5a63d42e-27c6-448a-84f1-bfc632125b8e.jpg'),
#> S3Path('s3://ladi/Images/FEMA_CAP/2020/70349/DSC_0002_a89f1b79-786f-4dac-9dcc-609fb1a977b1.jpg'),
#> S3Path('s3://ladi/Images/FEMA_CAP/2020/70349/DSC_0003_02c30af6-911e-4e01-8c24-7644da2b8672.jpg')]
# list items with iterdir
list(
s3_path.iterdir()
)[:3]
#> [ S3Path('s3://ladi/Images/FEMA_CAP/2020/70349/DSC_0001_5a63d42e-27c6-448a-84f1-bfc632125b8e.jpg'),
#> S3Path('s3://ladi/Images/FEMA_CAP/2020/70349/DSC_0002_a89f1b79-786f-4dac-9dcc-609fb1a977b1.jpg'),
#> S3Path('s3://ladi/Images/FEMA_CAP/2020/70349/DSC_0003_02c30af6-911e-4e01-8c24-7644da2b8672.jpg')]
2021-05-21 20:38:47 PDT にreprexlite v0.4.2で作成