2012-03-01 49 views
23

我在看亞馬遜S3樣品,並且樣品在那裏用於插入/刪除...我可以更新現有的Amazon S3對象嗎?

但我想用新數據更新現有的斑點。基本上內容是一個文本文件,並且文本已被修改,我希望S3對象存儲新的文本內容。

如何在Java中執行此操作?

回答

24

更新Amazon S3中的現有對象與創建它並沒有什麼不同,也就是使用非常相同的PUT Object操作上載對象並覆蓋現有對象(如果它沒有被其他方式保護) ,例如通過Using Bucket PoliciesObject Versioning

你可以找到Upload an Object Using the AWS SDK for Java一個完整的代碼示例中,主要部分歸結爲:

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

什麼斯特芬也說的是,沒有「局部斑點」更新。您需要上傳文件的全部新副本。 – 2012-03-06 19:33:36

相關問題