2012-03-01 4 views
23

Patrzyłem na próbki Amazon S3, a próbki są tam do wstawiania/usuwania ...Czy mogę zaktualizować istniejący obiekt Amazon S3?

Ale chcę zaktualizować istniejący blob ze świeżymi danymi. Zasadniczo treść jest plikiem tekstowym, a tekst został zmodyfikowany, chcę, aby obiekt S3 zapisywał nową zawartość tekstową.

Jak to zrobić w Javie?

Odpowiedz

24

Aktualizacja istniejącego obiektu w nie różni się od utworzenia go w pierwszej kolejności, tj. Ta sama operacja PUT Object służy do przesłania obiektu i zastąpi istniejący obiekt (jeśli nie jest chroniony innymi sposobami). np poprzez Using Bucket Policies lub Object Versioning)

można znaleźć kompletną próbkę kodu w Upload an Object Using the AWS SDK for Java główną część sprowadza się do:

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

Co Steffen również powiedzieć, że nie ma „częściowy blob” uaktualnianie. Musisz przesłać całą nową kopię pliku. –