web-dev-qa-db-ja.com

Boto3:S3リソースから選択したオブジェクトのみを取得する

AWS S3バケット内のすべてのオブジェクトを取得して読み取ることができます

s3 = boto3.resource('s3')
    bucket = s3.Bucket('my-bucket')
    all_objs = bucket.objects.all()
    for obj in all_objs:
        pass
        #filter only the objects I need

その後

obj.key

バケット内のパスを取得します。

すべてのオブジェクトをループして後でフィルタリングしないように、特定の開始パス(バケット内のディレクトリ)に関連するファイルのみを事前にフィルタリングする方法はありますか?

10
mar tin

バケットのようなコレクションのfilter[1][2] メソッドを使用します。

s3 = boto3.resource('s3')
bucket = s3.Bucket('my-bucket')
objs = bucket.objects.filter(Prefix='myprefix')
for obj in objs:
    pass
27
Ilja Everilä