web-dev-qa-db-fra.com

Créer des répertoires dans Amazon S3 à l'aide de python, boto3

Je sais que les compartiments S3 n'ont pas vraiment de répertoires car le stockage est plat. Mais il est possible de créer des répertoires par programmation avec python/boto3, mais je ne sais pas comment. Je l'ai vu sur un documentaire:

"Bien que le stockage S3 soit plat: les compartiments contiennent des clés, S3 vous permet d'imposer une arborescence de répertoires à votre compartiment en utilisant un délimiteur dans vos clés. Par exemple, si vous nommez une clé" a/b/f ", et utilisez '/' comme délimiteur, alors S3 considérera que 'a' est un répertoire, 'b' est un sous-répertoire de 'a' et 'f' est un fichier dans 'b'. "

Je peux créer uniquement des fichiers dans un seau S3 en:

    self.client.put_object(Bucket=bucketname,Key=filename)

mais je ne sais pas comment créer un répertoire.

15
Steve Ritz

Ajout d'une barre oblique / à la fin du nom de la clé, pour créer un répertoire ne fonctionnait pas pour moi:

client.put_object(Bucket="foo-bucket", Key="test-folder/")

Vous devez fournir le paramètre Body pour créer le répertoire:

client.put_object(Bucket='foo-bucket',Body='', Key='test-folder/')

Source: ryantuck dans le numéro boto

0
azzamsa