web-dev-qa-db-fra.com

Puis-je mettre à jour un objet Amazon S3 existant?

Je regardais les échantillons Amazon S3, et les échantillons sont là pour les insertions/suppressions ...

Mais je veux mettre à jour un blob existant avec de nouvelles données. Fondamentalement, le contenu est un fichier texte, et le texte a été modifié, je veux que l'objet S3 stocke le nouveau contenu texte.

Comment faire cela en Java?

30
Arvind

La mise à jour d'un objet existant dans Amazon S ne diffère pas de sa création en premier lieu, c'est-à-dire que la même opération PUT Object est utilisée pour télécharger l'objet et écrasera le existant (s'il n'est pas protégé par d'autres moyens, par exemple via tilisation des politiques de compartiment ou Versionnage d'objet )

Vous pouvez trouver un exemple de code complet dans pload an Object Using the AWS SDK for Java , la partie principale se résume à:

AmazonS3 s3client = new AmazonS3Client(new PropertiesCredentials(
        S3Sample.class.getResourceAsStream(
                "AwsCredentials.properties")));
try {
    System.out.println("Uploading a new object to S3 from a file\n");
    File file = new File(uploadFileName);
    s3client.putObject(new PutObjectRequest(
                             bucketName, keyName, file));

 } catch (AmazonServiceException ase) {
    System.out.println("Caught an AmazonServiceException, which " +
            "means your request made it " +
            "to Amazon S3, but was rejected with an error response" +
            " for some reason.");
    // ... error handling based on exception details
}
40
Steffen Opel