使用 spring 批次写入 aws S3 中的文件

Writing to a File in aws S3 with spring batch

我被分配了一项任务,我必须在每半小时为某些数据调用 API 时执行批处理,并且这些数据必须存储在不同文件的 s3 存储桶中.

我已经通过在 BufferedOutputStream 中复制数据然后使用 uploadPart 从 sdk-java (v2) 在 class 扩展中上传到 s3 来做到这一点FlatFileItemWriter<T>.

但我想知道 是否有另一种方法可以使用 Spring 批处理的块进程写入存储桶中已经存在的文件? 至少可以减少每次调用的处理大小,因为我从 API 获得的数据增长得非常快,因为每个请求的原始 API 响应的大小越来越大(比如 1000 或更多)。

这将在未来流式传输,但由于我们正在迁移,我需要一个临时解决方案,同时我调用的 API 被迁移

根据 https://forums.aws.amazon.com/message.jspa?messageID=540395,无法附加到 s3 文件。

基于此,您需要生成一个新文件并重新上传以替换之前的文件。