Amazon S3 boto – comment créer un dossier?

Comment créer un dossier sous un compartiment à l’aide de la bibliothèque boto pour Amazon s3?

J’ai suivi le manuel et créé les clés avec la permission, les métadonnées, etc., mais pas où dans la documentation de boto, il décrit comment créer des dossiers sous un compartiment ou créer un dossier sous des dossiers dans le compartiment.

    Il n’y a pas de concept de dossiers ou de répertoires dans S3. Vous pouvez créer des noms de fichiers comme "abc/xys/uvw/123.jpg" , que de nombreux outils d’access S3 comme S3Fox montrent comme une structure de répertoire, mais il ne s’agit en fait que d’un seul fichier dans un compartiment.

    Supposons que vous vouliez créer un dossier abc / 123 / dans votre seau, c’est un morceau de gâteau avec Boto

     k = bucket.new_key('abc/123/') k.set_contents_from_ssortingng('') 

    Ou utilisez la console

    Avec AWS SDK .Net fonctionne parfaitement, ajoutez simplement “/” à la fin de la chaîne de nom de dossier:

     var folderKey = folderName + "/"; //end the folder name with "/" AmazonS3 client = Amazon.AWSClientFactory.CreateAmazonS3Client(AWSAccessKey, AWSSecretKey); var request = new PutObjectRequest(); request.WithBucketName(AWSBucket); request.WithKey(folderKey); request.WithContentBody(ssortingng.Empty); S3Response response = client.PutObject(request); 

    Ensuite, actualisez votre console AWS et vous verrez le dossier

    Ajoutez “_ $ folder $” au nom de votre dossier et appelez.

      Ssortingng extension = "_$folder$"; s3.putObject("MyBucket", "MyFolder"+ extension, new ByteArrayInputStream(new byte[0]), null); 

    voir: http://www.snowgiraffe.com/tech/147/creating-folders-programmatically-with-amazon-s3s-api-putting-babies-in-buckets/

    S3 n’a pas de structure de dossier, mais il y a quelque chose appelé des clés.

    Nous pouvons créer /2013/11/xyz.xls et sera affiché comme dossier dans la console. Mais la partie stockage de S3 prendra cela comme nom de fichier.

    Même en récupérant, nous observons que nous pouvons voir des fichiers dans un dossier particulier (ou des clés) en utilisant la méthode ListObjects et en utilisant le paramètre Prefix .

    Il est vraiment facile de créer des dossiers. En fait, il ne s’agit que de créer des clés.

    Vous pouvez voir mon code ci-dessous, je créais un dossier avec utc_time comme nom.

    Rappelez-vous termine la clé avec ‘/’ comme ci-dessous, cela indique que c’est une clé:

    Key = ‘folder1 /’ + utc_time + ‘/’

     client = boto3.client('s3') utc_timestamp = time.time() def lambda_handler(event, context): UTC_FORMAT = '%Y%m%d' utc_time = datetime.datetime.utcfromtimestamp(utc_timestamp) utc_time = utc_time.strftime(UTC_FORMAT) print 'start to create folder for => ' + utc_time putResponse = client.put_object(Bucket='mybucketName', Key='folder1/' + utc_time + '/') print putResponse 

    Bien que vous puissiez créer un dossier en ajoutant “/” à votre nom de dossier. Sous le capot, S3 maintient une structure plate contrairement à votre NFS ordinaire.

     var params = {
                 Seau: bucketName,
                 Clé: nomdossier + "/"
             };
     s3.putObject (params, fonction (err, data) {});
    

    Apparemment, vous pouvez maintenant créer des dossiers dans S3. Je ne suis pas sûr depuis quand, mais j’ai un compartiment dans la zone “Standard” et je peux choisir le menu déroulant Créer un dossier à partir d’Action.

    Utilisez ceci:

     import boto3 s3 = boto3.client('s3') bucket_name = "YOUR-BUCKET-NAME" directory_name = "DIRECTORY/THAT/YOU/WANT/TO/CREATE" #it's name of your folders s3.put_object(Bucket=bucket_name, Key=(directory_name+'/'))