如何为 S3 对象创建 java OutputStream 并向其写入值?

Aru*_*run 7 java performance outputstream amazon-s3 amazon-web-services

使用 AmazonS3 类中的方法将内容添加到 S3 文件的现有方法是

  • 通过带有 InputStream 的 putObject
  • 创建包含内容的本地文件并将其上传到 S3。

有没有办法为现有的 S3 对象创建一个 OutputStream 对象,列表中的值可以写入其中?我看到没有这样做的 API。

bla*_*eij 5

可以创建一个包装 AmazonS3 客户端的 S3OutputStream。请参阅此实施要点: https://gist.github.com/blagerweij/ad1dbb7ee2fff8bcffd372815ad310eb 它会自动检测大文件,并在需要时使用多部分传输。它使用字节数组进行缓冲,该缓冲区的大小取决于您的用例。(默认为10MB)

例如:

   final S3Client s3Client = AmazonS3ClientBuilder.defaultClient();
   final OutputStream out = new S3OutputStream(s3Client, "bucket", "path/file.ext");
Run Code Online (Sandbox Code Playgroud)


Osc*_*Ryz 0

您可以查看 AWS SDK对 Amazon S3 对象执行操作

...
S3Client s3;
...
// Put Object
s3.putObject(bucket,object);
Run Code Online (Sandbox Code Playgroud)