Comment puis-je créer un dossier sous un compartiment à l'aide de la boto
bibliothèque pour Amazon s3?
J'ai suivi le manuel et créé les clés avec autorisation, métadonnées, etc., mais nulle part dans la documentation du boto, il ne décrit comment créer des dossiers sous un seau, ou créer un dossier sous des dossiers dans un seau.
Réponses:
Il n'y a pas de concept de dossiers ou de répertoires dans S3. Vous pouvez créer des noms de fichiers tels que
"abc/xys/uvw/123.jpg"
, que de nombreux outils d'accès S3 tels queS3Fox
montrent comme une structure de répertoires, mais il ne s'agit en réalité que d'un seul fichier dans un compartiment.la source
Supposons que vous vouliez créer le dossier abc / 123 / dans votre seau, c'est un jeu d'enfant avec Boto
Ou utilisez la console
la source
new_key()
c'est tout ce dont vous avez besoin. La chaîne envoyée à la fonction peut êtreabc/123/
ouabc/123/newfile.txt
. Ce que tu préfères. J'aime envelopper ceci dans une déclaration if après avoir essayé d'obtenir ce que j'espère être là comme ceci:key = bucket.get_key(upgrade_path) if key is None: key = bucket.new_key(upgrade_path)
Essentiellement, si ce n'est pas là, créez-le!mp = self._bucket.initiate_multipart_upload(bucket_key)
Avec AWS SDK .Net fonctionne parfaitement, ajoutez simplement "/" à la fin de la chaîne de nom de dossier:
Ensuite, actualisez votre console AWS et vous verrez le dossier
la source
Utilisez ceci:
la source
Ajoutez "_ $ dossier $" au nom de votre dossier et appelez put.
voir: http://www.snowgiraffe.com/tech/147/creating-folders-programmatically-with-amazon-s3s-api-putting-babies-in-buckets/
la source
Il est vraiment facile de créer des dossiers. En fait, il s'agit simplement de créer des clés.
Vous pouvez voir mon code ci-dessous, je créais un dossier avec utc_time comme nom.
Souvenez-vous qu'il termine la clé par '/' comme ci-dessous, cela indique que c'est une clé:
Clé = 'dossier1 /' + utc_time + '/'
la source
Mise à jour pour 2019, si vous souhaitez créer un dossier avec le chemin bucket_name / folder1 / folder2, vous pouvez utiliser ce code:
la source
Bien que vous puissiez créer un dossier en ajoutant "/" à votre nom_dossier. Sous le capot, S3 maintient une structure plate contrairement à votre NFS habituel.
la source
J'ai essayé de nombreuses méthodes ci-dessus et l'ajout d'une barre oblique
/
à la fin du nom de la clé, pour créer un répertoire ne fonctionnait pas pour moi:Vous devez fournir un
Body
paramètre pour créer un répertoire:Source: ryantuck dans le numéro de boto3
la source
S3 n'a pas de structure de dossiers, mais il y a quelque chose qui s'appelle des clés.
Nous pouvons créer
/2013/11/xyz.xls
et seront affichés comme des dossiers dans la console. Mais la partie stockage de S3 prendra cela comme nom de fichier.Même lors de la récupération, nous observons que nous pouvons voir des fichiers dans un dossier particulier (ou des clés) en utilisant la
ListObjects
méthode et en utilisant lePrefix
paramètre.la source
Apparemment, vous pouvez maintenant créer des dossiers dans S3. Je ne sais pas depuis quand, mais j'ai un compartiment dans la zone "Standard" et je peux choisir Créer un dossier à partir du menu déroulant Action.
la source