Arun
Arun

Reputation: 1286

How to create a java OutputStream for an S3 object and write value to it?

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

Answers (2)

blagerweij
blagerweij

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

OscarRyz
OscarRyz

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

Related Questions