Dossiers renommés dans AWS S3 (Java)

Je souhaite renommer un dossier dans AWS S3

En premier lieu, AWS S3 n'a pas le concept de dossiers, donc le nom «dossier» est inapproprié. (Dans ce cas, est-il plus approprié de l'appeler une "clé"?)

Pour le moment, on l'appelle un «dossier» pour plus de commodité.

AWS S3 ne peut pas renommer un dossier une fois créé

Vous pourriez penser que vous ne pouvez pas le faire soudainement, mais vous ne pouvez pas. Vous ne pouvez pas le modifier à partir de la console de gestion.

Nande? J'ai pensé, j'ai baissé les yeux et compris. C'est vrai. C'est juste un magasin de données de type clé-valeur ...

"Détruisez l'illusion de" dossiers "dans Amazon S3 et révélez sa substance." https://dev.classmethod.jp/cloud/aws/amazon-s3-folders/

Créer un nouveau dossier → copier le contenu → supprimer le dossier d'origine

Ce sera possible avec ce qui suit. C'est la même procédure que la commande rename sous Unix / Linux.

public void changeFolderName(String bucketName, String oldPrefix, String newPrefix){
    AmazonS3 s3 = new AmazonS3Client(new ClasspathPropertiesFileCredentialsProvider());
    ObjectListing listing = s3.listObjects(bucketName, oldPrefix);

    for (S3ObjectSummary summary: listing.getObjectSummaries()) {
      String oldKey = summary.getKey();
      String newKey = new StringBuilder().append(newPrefix).append(oldKey.substring(oldPrefix.length())).toString();
      s3.copyObject(bucketName, oldKey, bucketName, newKey);
      s3.deleteObject(bucketName, oldKey);
    }
}

Recommended Posts

Dossiers renommés dans AWS S3 (Java)
Suppression d'objets AWS S3 dans Java
Essayez d'exécuter AWS X-Ray en Java
Partition en Java
Changements dans Java 11
Janken à Java
Taux circonférentiel à Java
FizzBuzz en Java
[AWS IoT] Implémentation de l'autorisation d'appels directs en Java [Java]
Télécharger et télécharger des notes en java sur S3
Code pour supprimer tous les fichiers du préfixe spécifié dans AWS S3 (Java)
Implémentation de l'interpréteur par Java
Faites un blackjack avec Java
Application Janken en Java
Programmation par contraintes en Java
Mettez java8 dans centos7
NVL-ish guy en Java
"Hello World" en Java
Interface appelable en Java
Commentaires dans la source Java
Fonctions Azure en Java
Formater XML en Java
Simple htmlspecialchars en Java
Implémentation Boyer-Moore en Java
Utiliser OpenCV avec Java
Mémorandum WebApi avec Java
Détermination de type en Java
Exécuter des commandes en Java (ping)
Implémentation du tri de tas (en java)
API Zabbix en Java
Art ASCII à Java
Comparer des listes en Java
POST JSON en Java
Exprimer l'échec en Java
Créer JSON en Java
Manipulation de la date dans Java 8
Nouveautés de Java 8
Utiliser PreparedStatement en Java
Nouveautés de Java 9,10,11
Exécution parallèle en Java
Agrégation et analyse de journaux (utilisation d'AWS Athena en Java)
Générer AWS Signature V4 en Java et demander l'API
Essayez d'utiliser RocksDB avec Java
Lire des fichiers binaires en Java 1
Évitez l'erreur que Yuma a donnée en Java
Obtenir des informations EXIF en Java
[Neta] Sleep Sort en Java
Modifier ini en Java: ini4j
L'histoire de Java dans ce monde
Segfo Java en 6 lignes
Essayez de développer Spresense avec Java (1)
Essayez le type fonctionnel en Java! ①
J'ai fait une roulette à Java.
Implémentation de l'authentification en deux étapes en Java
Ecrire des rappels de vol en Java
Importer des données Excel avec Java 2