2016-03-24 4 views
4

Ich kann alle Objekte in meine AWS S3 Eimer überBoto3: Greifen nur ausgewählte Objekte aus der S3 Ressource

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 

und dann

obj.key 

würde mir den Weg in die packen und lesen Eimer.

Gibt es eine Möglichkeit, vorher nur für diese Dateien zu filtern, die einen bestimmten Startpfad (ein Verzeichnis im Bucket) enthalten, damit ich nicht alle Objekte durchlaufen und später filtern kann?

Antwort

7

Verwenden Sie die filter[1], [2] Methode der Sammlungen wie Eimer.

s3 = boto3.resource('s3') 
bucket = s3.Bucket('my-bucket') 
objs = bucket.objects.filter(Prefix='/myprefix') 
for obj in objs: 
    pass 
Verwandte Themen