2012-03-01 32 views
23

Amazon S3 Samples örneklerine bakıyordum ve örnekler eklemeleri/silmeler için var ...Mevcut bir Amazon S3 nesnesini güncelleyebilir miyim?

Ancak varolan bloğu yeni verilerle güncellemek istiyorum. Temel olarak içerik bir metin dosyasıdır ve metin değiştirilmiştir, S3 nesnesinin yeni metin içeriğini saklamasını istiyorum.

Bunu Java'da nasıl yapabilirim?

cevap

24

Amazon S3 adresinde varolan bir nesneyi güncellemek, öncelikle onu oluşturmaya göre farklı değildir, yani aynı PUT Object işlemi nesneyi yüklemek için kullanılır ve mevcut olanın üzerine yazılır (başka bir yöntemle korunmuyorsa) Steffen de söylediğini ne

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

hayır 'kısmi damla' güncellenmesi olmasıdır: etmek, Sen Upload an Object Using the AWS SDK for Java tam bir kod örneğini bulabilirsiniz

Using Bucket Policies veya Object Versioning) mesela yoluyla, ana bölümü aşağı kaynar. Dosyanın yeni kopyasını yüklemeniz gerekiyor. –