gpt4 book ai didi

java - 如何将 Java OutputStream 上传到 AWS S3

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:20:29 24 4
gpt4 key购买 nike

我在内存中创建 PDF 文档作为 OutputStream。这些应该上传到 S3。我的问题是无法直接从 OutputStream 创建 PutObjectRequest(根据 this thread in the AWS dev forum )。我在 Dropwizard 中使用 aws-java-sdk-s3 v1.10.8应用程序。

目前我能看到的两个解决方法是:

  1. OutputStream 复制到 InputStream 并接受使用两倍的 RAM。
  2. OutputStream 通过管道传输到 InputStream 并接受额外线程的开销(参见 this answer )

如果我找不到更好的解决方案,我会选择 #1,因为在我的设置中,看起来我比线程/CPU 更容易负担得起额外的内存。

有没有其他可能更有效的方法来实现我目前忽略的这一点?

编辑:我的 OutputStreamByteArrayOutputStream

最佳答案

我通过继承 ConvertibleOutputStream 解决了这个问题:

public class ConvertibleOutputStream extends ByteArrayOutputStream {
//Craetes InputStream without actually copying the buffer and using up mem for that.
public InputStream toInputStream(){
return new ByteArrayInputStream(buf, 0, count);
}
}

关于java - 如何将 Java OutputStream 上传到 AWS S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31805518/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com