Récupération des noms de sous-dossiers dans le compartiment S3 à partir de boto3

À l'aide de boto3, je peux accéder à mon seau AWS S3:

s3 = boto3.resource('s3')
bucket = s3.Bucket('my-bucket-name')

Maintenant, le seau contient un dossier first-levelqui lui-même contient plusieurs sous-dossiers nommés avec un timestamp, par exemple 1456753904534.
J'ai besoin de savoir le nom de ces sous-dossiers pour un autre emploi, je suis en train de faire et je me demande si je pouvais avoir boto3 récupérer ces pour moi.

J'ai donc essayé:

objs = bucket.meta.client.list_objects(Bucket='my-bucket-name')

qui donne un dictionnaire, dont la clé "Contenu" donne-moi la troisième fichiers au niveau de la place du deuxième niveau de l'horodatage des répertoires, en fait-je obtenir une liste contenant les choses comme

{u'ETag': '"etag"', u Key': premier niveau/1456753904534/partie-00014', u'LastModified':
datetime.datetime(2016, 2, 29, 13, 52, 24, tzinfo=tzutc()),
u'Owner': {u'DisplayName': 'propriétaire', u ÎD':
'id'},
u'Size': taille, u'StorageClass': 'storageclass'}

vous pouvez voir que les fichiers spécifiques, dans ce cas part-00014 sont récupérées, alors que je voudrais obtenir le nom du répertoire à lui seul.
En principe, j'ai pu dépouiller le nom de répertoire de tous les chemins, mais c'est moche et cher à récupérer tout au troisième niveau pour obtenir le deuxième niveau!

J'ai aussi essayé quelque chose signalé ici:

for o in bucket.objects.filter(Delimiter='/'):
    print(o.key)

mais je ne reçois pas les dossiers au niveau désiré.

Est-il un moyen de résoudre ce problème?

source d'informationauteur mar tin