2017-10-29 7 views
0

S3バケットに必要なだけ多くのファイルをアップロードすると、Java SDKが使用されます。私は次のようにしています:S3 SDK新しいファイルを作成する代わりに、アップロード時に単一のオブジェクトを更新する

@Override 
public void upload() { 
    PutObjectRequest putObjectRequest = new PutObjectRequest(BUCKET_NAME, ACCESS_KEY, new File('myFilePath')); 
    getS3Client().putObject(putObjectRequest); 
} 

問題は、常に上書きして既存のファイルです。ですから、 "myFilePath"パラメータをイメージやテキストに変更しても、新しいファイルは作成されませんが、既存のファイルは更新されます。これらは異なるファイルであり、同じではないため、発生してはいけません。

既存のファイルを更新せずにファイルを作成するにはどうすればよいですか?

答えて

2

PutObjectRequestコンストラクタの2番目のパラメータは、新しいオブジェクトを格納するためのキーです。誤ってすべての要求に対して同じキー(ACCESS_KEY)を渡しています。

1

S3キーは、オブジェクトの名前です。 S3のファイルの完全パス+ファイル名です。 AWS資格情報の一部のように見えるACCESS_KEYを使用しています。そのパラメータにACCESS_KEYを渡すべきではありません。オブジェクトのキー/ファイル名を渡す必要があります。

関連する問題