Je souhaite ajouter un dossier dans mon seau amazon s3 en utilisant le codage. Pouvez-vous s'il vous plaît me suggérer comment y parvenir?Ajouter un dossier dans le seau Amazon s3
Répondre
Il n'y a aucun dossier dans Amazon S3. C'est juste que la plupart des outils du navigateur S3 disponibles montrent une partie du nom de la clé séparée par une barre oblique en tant que dossier.
Si vous en avez vraiment besoin, vous pouvez créer un objet vide avec la barre oblique à la fin. par exemple. "folder /" Cela ressemblera à un dossier si vous l'ouvrez avec un outil graphique et AWS Console.
Il ressemble à des dossiers pour moi? – Nate
Regardez ceci http://docs.aws.amazon.com/AmazonS3/latest/UG/FolderOperations.html – lucasddaniel
Avec AWS SDK .Net fonctionne parfaitement, il suffit d'ajouter "/" à la fin du dossier nom:
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(string.Empty);
S3Response response = client.PutObject(request);
Ensuite, actualisez votre console AWS, et vous verrez le dossier
Le AWS:S3 rails bijou fait en lui-même:
AWS::S3::S3Object.store("teaser/images/troll.png", file, AWS_BUCKET)
crée automatiquement les teaser
et images
« dossiers » si elles ne le font pas déjà exister.
Java avec AWS SDK:
Il n'y a pas de dossiers dans s3, seules les paires clé/valeur. La clé peut contenir des barres obliques (
/
) et cela la fera apparaître comme un dossier dans la console de gestion, mais par programmation ce n'est pas un dossier c'est une valeur String.Si vous tentez de structurer votre compartiment s3, vos conventions de dénomination (les clés que vous attribuez à vos fichiers) peuvent simplement suivre les modèles de répertoire normaux, c'est-à-dire
folder/subfolder/file.txt
.Lors de la recherche (en fonction de la langue que vous utilisez), vous pouvez effectuer une recherche via un préfixe avec un délimiteur. En Java, ce serait un appel de méthode
listObjects(String storageBucket, String prefix, String delimiter)
.Le
storageBucket
est le nom de votre seau, laprefix
est la clé que vous souhaitez rechercher, et ledelimiter
est utilisé pour filtrer votre recherche basé sur l'prefix
.
Comme tout le monde vous l'a dit, dans AWS S3 il n'y a pas de "dossiers", vous n'y pensez pas correctement. AWS S3 a des "objets", ces objets peuvent ressembler à des dossiers mais ils ne sont pas vraiment des dossiers dans le sens le plus complet du mot. Si vous cherchez à créer des dossiers sur Amazon AWS S3, vous ne trouverez pas beaucoup de bons résultats.
Il existe un moyen de créer des "dossiers" dans le sens où vous pouvez créer une structure de dossiers simulée sur le S3, mais encore une fois, vous devez créer des objets dans S3, pas des dossiers. En allant de pair, vous aurez besoin de la commande "put-object" pour créer cette structure de dossier simulée. Maintenant, pour utiliser cette commande, vous avez besoin des outils AWS CLI installés, rendez-vous ici AWS CLI Installation pour obtenir des instructions pour les installer.
La commande est la suivante:
aws s3api put-object --bucket your-bucket-name --key path/to/file/yourfile.txt --body yourfile.txt
Maintenant, la partie amusante de cette commande est, vous n'avez pas besoin d'avoir tous les « dossiers » (objets) créés avant d'exécuter cette commande.Cela signifie que vous pouvez avoir un "dossier" (objet) pour contenir des choses, mais ensuite vous pouvez utiliser cette commande pour créer la structure de dossier simulée dans ce "dossier" (objet) comme je l'ai déjà mentionné. Par exemple, j'ai un "dossier" (objet) nommé "importateur" dans mon compartiment S3, disons que je veux insérer sample.txt dans une structure "dossier" (objet) de l'année, du mois, puis un échantillon " dossier "(objet) dans tout cela. Si je n'ai que l'objet "importateur" dans mon compartiment, je n'ai pas besoin d'entrer auparavant pour créer l'année, le mois et les exemples d'objets ("dossiers") avant d'exécuter cette commande. Je peux exécuter cette commande comme ceci:
aws s3api put-object --bucket my-bucket-here --key importer/2016/01/sample/sample.txt --body sample.txt
La commande mis-objet sera ensuite et créer le chemin que je l'ai indiqué dans le drapeau --key. Voici un petit bijou: même si vous n'avez pas de fichier à télécharger sur le S3, vous pouvez toujours créer des objets ("dossiers") dans le compartiment S3, par exemple, j'ai créé un script shell pour "créer des dossiers" dans le compartiment, en omettant le drapeau --body, et en ne spécifiant pas de nom de fichier, et en laissant une barre oblique à la fin du chemin fourni dans le flag --key, le système crée la structure de dossier simulée souhaitée dans le compartiment S3 sans insérer un fichier dans le processus.
Espérons que cela vous aide à mieux comprendre le système. Remarque: une fois que vous avez créé une structure "dossier", vous pouvez utiliser la commande "sync" de S3 pour synchroniser le "dossier" descendant avec un dossier sur votre machine locale, ou même avec un autre compartiment S3.
Je réalise que cette question est morte depuis longtemps, mais je n'ai jamais trouvé de réponse satisfaisante à cette question est arrivé à trouver la bonne terminologie et j'ai joué avec des scripts shell au point où j'ai compris comment faire cela. Donc, je voulais donner une vraie réponse à tous ceux qui ont besoin de savoir comment faire. – Jravict
connexes (pour ceux qui s'interrogent sur les différents s3 cli disponibles, par exemple, .'s3' vs 's3api'): https://stackoverflow.com/a/26396150/127971 L'utilisation de' aws s3' peut être plus facile à installer et utiliser pour de nombreuses tâches, par exemple, pour copier tous les fichiers dans pwd local à distance: 'aws s3 sync. s3: // mon-seau ' – michael
exemple de la CLI d'ajouter la barre oblique et laisser le corps:' aws s3api put-object --bucket my-bucket --key folder/' –
Vous pouvez sélectionner la langue de votre choix disponible AWS SDK
Sinon, vous pouvez essayer les bibliothèques clientes MINIO disponibles dans Python, Go, .Net, Java, Javascript pour votre environnement de développement d'applications, il a répertoire exemple avec toutes les opérations de base listé.
Disclaimer: Je travaille pour Minio
malheureusement, vos exemples ne comprennent pas un exemple de création d'un dossier dans le cadre de la mise en place d'un objet ... –
Dans iOS (Objective-C), je ne suit ainsi
Vous pouvez ajouter ci-dessous le code pour créer un dossier dans un seau s3 amazone programme. Ceci est un extrait de code de travail. Toute suggestion Bienvenue.
-(void)createFolder{
AWSS3PutObjectRequest *awsS3PutObjectRequest = [AWSS3PutObjectRequest new];
awsS3PutObjectRequest.key = [NSString stringWithFormat:@"%@/", @"FolderName"];
awsS3PutObjectRequest.bucket = @"Bucket_Name";
AWSS3 *awsS3 = [AWSS3 defaultS3];
[awsS3 putObject:awsS3PutObjectRequest completionHandler:^(AWSS3PutObjectOutput * _Nullable response, NSError * _Nullable error) {
if (error) {
NSLog(@"error Creating folder");
}else{
NSLog(@"Folder Creating Sucessful");
}
}];
}
Certaines explications en plus du code rendraient cette réponse plus utile. –
@yogesh Dalavi ce code fonctionne. –
Pour Swift I a créé une méthode où l'on passe dans un String
pour le nom du dossier.
Swift 3:
import AWSS3
func createFolderWith(Name: String!) {
let folderRequest: AWSS3PutObjectRequest = AWSS3PutObjectRequest()
folderRequest.key = Name + "/"
folderRequest.bucket = bucket
AWSS3.default().putObject(folderRequest).continue({ (task) -> Any? in
if task.error != nil {
assertionFailure("* * * error: \(task.error?.localizedDescription)")
} else {
print("created \(Name) folder")
}
return nil
})
}
Ensuite, il suffit d'appeler
Dans rapide 2.2, vous pouvez créer un dossier en utilisant
func createFolderWith(Name: String!) {
let folderRequest: AWSS3PutObjectRequest = AWSS3PutObjectRequest()
folderRequest.key = Name + "/"
folderRequest.bucket = "Your Bucket Name"
AWSS3.defaultS3().putObject(folderRequest).continueWithBlock({ (task) -> AnyObject? in
if task.error != nil {
assertionFailure("* * * error: \(task.error?.localizedDescription)")
} else {
print("created \(Name) folder")
}
return nil
})
}
Avec aws cli, il est possible de copier un dossier entier à un seau.
aws s3 cp /path/to/folder s3://bucket/path/to/folder --recursive
Il y a aussi la possibilité de synchronisation un dossier en utilisant aws s3 sync
Pour moi, la clé était de mettre le nom du dossier dans la destination. – xdhmoore
crée ci-dessous un répertoire vide appelé « mydir1 ». Ci-dessous le code nodejs, il devrait être similaire pour les autres langues.
L'astuce consiste à avoir slash (/) à la fin du nom de l'objet, comme dans "mydir1 /", sinon un fichier avec le nom "mydir1" sera créé.
let AWS = require('aws-sdk');
AWS.config.loadFromPath(__dirname + '\\my-aws-config.json');
let s3 = new AWS.S3();
var params = {
Bucket: "mybucket1",
Key: "mydir1/",
ServerSideEncryption: "AES256" };
s3.putObject(params, function (err, data) {
if (err) {
console.log(err, err.stack); // an error occurred
return;
} else {
console.log(data); // successful response
return;
/*
data = {
ETag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
ServerSideEncryption: "AES256",
VersionId: "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt"
}
*/
} });
Source: http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#putObject-property
- 1. Seau sécurisé Amazon S3
- 2. Recherche dans un seau Amazon S3
- 3. Amazon S3 boto - comment créer un dossier?
- 4. amazon s3 hébergement virtuel de seau
- 5. création de seau php amazon s3
- 6. Quand créer un seau S3
- 7. Comment créer un seau européen Amazon S3 en utilisant Zend_Service_Amazon_S3
- 8. Supprimer un seau dans S3
- 9. Créer un dossier zip en amazon S3
- 10. Classe Amazon s3 par un dossier de création non créé
- 11. comment supprimer des fichiers du seau amazon s3?
- 12. politiques seau s3 Amazon restreindre l'accès n'a pas d'effet
- 13. Comment accorder une autorisation d'ouverture/de téléchargement pour un objet amazon s3 dans un grand seau?
- 14. Accès Amazon S3 Refus lors de la lecture des fichiers de seau S3 avec le signe "+"
- 15. Seau AWS S3 - Ajouter un fichier au dossier interne à l'aide d'AWS SDK
- 16. Amazon S3 Télécharger dans le dossier en utilisant PHP
- 17. S3 copier l'objet à l'intérieur d'un sous-dossier seau (PHP)
- 18. android créer un objet dans un seau sur les bases de données s3 amazon
- 19. Manipulation du dossier Amazon S3 avec PHP
- 20. Création d'un dossier via s3cmd (Amazon S3)
- 21. Accès en lecture seule au dossier S3 sur Amazon
- 22. Amazon S3 avec flowplayer
- 23. Supprimer un objet ou un compartiment dans Amazon S3?
- 24. Amazon S3 Images
- 25. Téléchargement de gros fichiers dans le monde quel seau S3?
- 26. Carrierwave et amazon s3
- 27. Est-il possible de partager un compartiment Amazon S3 entre des utilisateurs Amazon S3?
- 28. Impossible de supprimer un seau vide S3
- 29. Amazon AWS Pagination sur les fichiers seau
- 30. Amazon S3 - Stratégie de compartiment
Il serait utile de préciser dans ce qui est la langue est votre "codage". – samvermette