gpt4 book ai didi

java - Spring 批处理文件编写器直接写入亚马逊 s3 存储,无需 PutObjectRequest

转载 作者:行者123 更新时间:2023-12-04 01:34:05 26 4
gpt4 key购买 nike

我正在尝试将文件上传到亚马逊 s3。我想使用spring批处理从数据库中读取数据并将文件直接写入s3存储,而不是上传。无论如何我们可以做到这一点吗?

最佳答案

Spring Cloud AWS adds支持 Amazon S3 服务使用资源加载器和 s3 协议(protocol)加载和写入资源。一旦你有 configured the AWS resource loader ,您可以编写一个自定义的 Spring Batch 编写器,例如:

import java.io.OutputStream;
import java.util.List;

import org.springframework.batch.item.ItemWriter;
import org.springframework.core.io.ResourceLoader;
import org.springframework.core.io.WritableResource;

public class AwsS3ItemWriter implements ItemWriter<String> {

private ResourceLoader resourceLoader;

private WritableResource resource;

public AwsS3ItemWriter(ResourceLoader resourceLoader, String resource) {
this.resourceLoader = resourceLoader;
this.resource = (WritableResource) this.resourceLoader.getResource(resource);
}

@Override
public void write(List<? extends String> items) throws Exception {
try (OutputStream outputStream = resource.getOutputStream()) {
for (String item : items) {
outputStream.write(item.getBytes());
}
}
}
}

然后您应该能够将此编写器与 s3://myBucket/myFile.log 之类的 S3 资源一起使用。 .

Is there anyway we can do that ?



请注意,我没有编译/测试之前的代码。我只是想给你一个如何做的起点。

希望这可以帮助。

关于java - Spring 批处理文件编写器直接写入亚马逊 s3 存储,无需 PutObjectRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50685891/

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