2016-04-11 13 views
0

Von der Boto Dokumentation und Beispiele in Stackoverflow verwenden alle Beispiele:ist es möglich, s3 ObjectSummary eines bestimmten Schlüssels zu erhalten?

all_matches = Bucket.objects.filter(Prefix=key) 

und als Schleife über das Ergebnis für eine volle Mathe gesetzt

match = filter(lambda x: x.key == key, all_matches) 

nicht da ist ein Verfahren, das dies tut direkt?

+0

Die Antwort ist: NOCH NICHT. Dies ist der Boto3-Quellcode. https://github.com/boto/boto3 – mootmoot

Antwort

1

Gibt es einen bestimmten Grund, warum Sie eine ObjectSummary anstelle einer Object möchten? Wenn Sie nicht durch eine Liste suchen, gibt es keinen Grund für eine ObjectSummary zu gehen, da beide die gleiche HEAD Anfrage ausführen.

import boto3 

s3 = boto3.resource('s3') 

# Get Full Object 
bucket = s3.Bucket('bucket-name') 
obj = s3.Object('key') 

# Get Object Summary. Performs the same request as .Object 
objsum = s3.ObjectSummary('bucket-name', 'key') 
+0

Ich brauche nur die Metadaten. Der von Ihnen angegebene Code ist falsch - er erstellt "getrennte" Objekte - sie sind nicht mit dem Server verbunden –

+1

Wenn Sie zum ersten Mal versuchen, auf einen nicht geladenen Wert zuzugreifen, versucht er, eine HEAD-Anfrage zu stellen. –

Verwandte Themen