2012-03-01 7 views
23

Je regardais des exemples Amazon S3, et les échantillons sont là pour les insertions/suppressions ...Puis-je mettre à jour un objet Amazon S3 existant?

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 pour stocker le nouveau contenu du texte.

Comment faire cela en Java?

Répondre

24

La mise à jour d'un objet existant dans Amazon S3 ne diffère pas de la 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 celle existante (si elle n'est pas protégée par d'autres moyens , par exemple via Using Bucket Policies ou Object Versioning)

Vous pouvez trouver un exemple de code complet en Upload 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 
} 
+9

ce que Steffen dit est aussi qu'il n'y a pas de mise à jour 'blob partielle. Vous devez télécharger la nouvelle copie complète du fichier. –