2017-01-09 1 views
1

Je suis nouveau à Boto et en utilisant boto2.29.1 en python.S3 bibliothèque boto: Comment faire une demande HEAD sur la clé dans le seau

Ajout de métadonnées utilisateur à l'aide set_metadata méthode

Liste toutes les clés dans le seau s3 en utilisant la méthode bucket.list() puis itérer sur les touches. Mais il ne retourne pas de métadonnées utilisateur tel que défini dans API reference

Mais obtenir métadonnées à l'aide bucket.get_key() produit des métadonnées

de référence API indique obtenir des métadonnées en faisant la demande HEAD sur la clé. Comment puis-je faire ceci?

+0

J'apprécierai si quelqu'un dit aussi que la façon d'obtenir des clés avec des métadonnées utilisateur spécifique au lieu d'obtenir toutes les clés puis en filtrant les clés –

+1

Si vous êtes un nouveau client, je vous recommande d'utiliser boto3. ([docs pour head_object] (http://boto3.readthedocs.io/en/latest/reference/services/s3.html#S3.Client.head_object)) –

Répondre

0

Boto n'a pas de requêtes directes (du moins pas dans v2). La seule façon d'obtenir toutes les métadonnées est avec la méthode bucket.get_key().

Si vous avez seulement besoin des métadonnées pour quelques-unes des clés alors vous pouvez faire quelque chose comme ceci:

for key in bucket.list(): 
    if want_metadata(key.name): 
     key_with_md = bucket.get_key(key.name) 
     metadata = key_with_md.get_metadata('smth')