Reputation: 1286
Existing ways of adding content to an S3 file using methods in AmazonS3 class are
Is there a way an OutputStream can be created for an existing S3 object to which values from a list can be written into? I see there are no APIs for doing so.
Upvotes: 11
Views: 14508
Reputation: 3421
It's possible to create an S3OutputStream which wraps the AmazonS3 client. See this gist for the implementation: https://gist.github.com/blagerweij/ad1dbb7ee2fff8bcffd372815ad310eb It automatically detects large files, and uses multi-part transfers when required. It uses a byte-array for buffering, the size of that buffer depends on your use case. (default is 10MB)
For example:
final S3Client s3Client = AmazonS3ClientBuilder.defaultClient();
final OutputStream out = new S3OutputStream(s3Client, "bucket", "path/file.ext");
Upvotes: 5
Reputation: 199215
You can take a look at AWS SDK Performing Operations on an Amazon S3 Object
...
S3Client s3;
...
// Put Object
s3.putObject(bucket,object);
Upvotes: 0