J'ai essayé le code suivant pour mettre une chaîne dans la S3. J'ai vu le dossier a été créé sous le seau, mais n'a pas vu un objet dans le dossier. Qu'est-ce que je rate?
String SUFIX = "/";
try {
s3client.putObject(bucketName, today.toString() + SUFFIX + source + SUFFIX, "abc");
} catch (Exception e) {
e.printStackTrace();
}
Je ne pense pas que ce soit un problème d'autorisation, parce que j'ai les dossiers créés par le code ci-dessus et il n'y a pas d'exception interceptée par la try-catch aussi. aide s'il vous plaît. Merci
De la documentation d'Amazon S3 :
La traite console Amazon S3 tous les objets qui ont une barre oblique ( en avant le
/
caractère) que le dernier caractère (fin) au nom de la clé comme un dossier, par exempleexamplekeyname/
. Vous ne pouvez pas télécharger un objet qui a un nom de clé avec un arrière/
personnage en utilisant la console Amazon S3.Cependant, vous pouvez télécharger des objets qui sont nommés avec un arrière
/
avec l'API Amazon S3 en utilisant l'AWS CLI, AWS SDK ou API REST.Un objet qui est nommé avec une fuite « / » apparaît comme un dossier dans la console Amazon S3.
Donc, dans votre cas, la suppression slash doit faire le travail:
String SUFIX = "/";
try {
s3client.putObject(bucketName, today.toString() + SUFFIX + source, "abc");
} catch (Exception e) {
e.printStackTrace();
}