web-dev-qa-db-ja.com

既存のAmazon S3オブジェクトを更新できますか?

Amazon S3サンプルを見ていましたが、サンプルは挿入/削除のためにあります...

しかし、既存のBLOBを最新のデータで更新したいです。基本的に、コンテンツはテキストファイルであり、テキストは変更されています。S3オブジェクトに新しいテキストコンテンツを保存する必要があります。

Javaでこれを行うにはどうすればよいですか?

30
Arvind

Amazon S ​​で既存のオブジェクトを更新することは、そもそもオブジェクトを作成することと変わりません。つまり、非常に同じ PUT Object 操作を使用してオブジェクトをアップロードし、既存のもの( バケットポリシーの使用 または オブジェクトのバージョン管理 などを介して他の手段で保護されていない場合)

完全なコードサンプルは 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
}
40
Steffen Opel