Могу ли я обновить существующий объект Amazon S3? - PullRequest
30 голосов
/ 01 марта 2012

Я просматривал Amazon S3 Samples, и там есть образцы для вставки / удаления ...

Но я хочу обновить существующий BLOB-объект свежими данными.По сути, содержимое представляет собой текстовый файл, и текст был изменен, я хочу, чтобы объект S3 сохранял новое текстовое содержимое.

Как мне сделать это в Java?

1 Ответ

38 голосов
/ 01 марта 2012

Обновление существующего объекта в Amazon S3 не отличается от его создания, т. Е. Та же самая операция PUT Object используется для загрузки объекта и перезаписываетсуществующий (если он не защищен другими средствами, например, через Использование политик корзины или Управление версиями объекта )

Полный пример кода можно найти в Загрузка объекта Используя AWS SDK для 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
}
...