我可以更新现有的Amazon S3对象吗?

我在看Amazon S3样品,样品在那里进行插入/删除……

但我想用新数据更新现有的blob。 基本上内容是文本文件,并且文本已被修改,我希望S3对象存储新的文本内容。

我如何用Java做到这一点?

更新Amazon S3中的现有对象与首先创建现有对象没有区别,即,使用完全相同的PUT对象操作来上传对象并覆盖现有对象(如果它不受其他方式保护,例如通过使用存储桶策略或对象版本控制 )

您可以使用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 }