gpt4 book ai didi

Java.net.SocketException : Connection reset when reading file from S3

转载 作者:行者123 更新时间:2023-12-04 14:20:50 25 4
gpt4 key购买 nike

我正在尝试从 S3 读取一些文件并对每个文件进行一些处理。我可以通过一些文件,但我一直收到 Java.net.SocketException:连接重置 在处理期间在特定文件中的同一行。有问题的文件应该没问题,因为我可以使用相同的类和方法(conversionUtils.convert())在本地处理它。

服务等级:

public class FileService {

@Inject
private S3Utils s3utils;

private ConversionUtils conversionUtils = new ConversionUtils();

public void processFile() {
List<S3ObjectSummary> files = s3utils.getAllFiles();
List<S3Object> unprocessedFiles = s3utils.getUnprocessedFiles(files);

for(S3Object file: unprocessedFiles) {
InputStream content = file.getObjectContent();
List<Record> records = conversionUtils.convert(content); //Exception thrown here
}
}
}

S3Utils 类:
@Component
public class S3utils {
@Inject AmazonS3 amazonS3;

public List<S3ObjectSummary> getAllFiles() {
ListObjectsV2Request request = new ListObjectsV2Request().withBucketName('something').withPrefix('some_prefix');
ListObjectsV2Result result = amazonS3.listObjectsV2(request);;

return result.getObjectSummaries();
}

public List<S3Object> getUnprocessedFiles(List<S3ObjectSummary> files) {
//do some filtering here

List<S3Object> unprocessedFiles = new ArrayList<>();
for (S3ObjectSummary summary : filteredSummaries) {
S3Object s3Object = amazonS3.getObject(new GetObjectRequest(summary.getBucketName(), summary.getKey()));
unprocessedFiles.add(S3Object);
}
return unprocessedFiles;
}
}

配置类:
@Configuration
public class Config {
@Bean
public AmazonS3 amazonS3() {
return AmazonS3ClientBuilder.standard().withCredentials(new DefaultAWSCredentialsProviderChain()).build();
}
}

我读过其他一些有类似错误的线程,其中问题是 AmazonS3 客户端被垃圾收集,因此关闭了流,但我想知道这里是否是这种情况。关于问题是什么的任何想法?谢谢。

最佳答案

我能够通过设置 ClientConfig 来保持连接活跃来克服这个问题

AmazonS3ClientBuilder
.standard()
.withCredentials(new DefaultAWSCredentialsProviderChain())
.withClientConfiguration(new ClientConfiguration())
.withTcpKeepAlive(true)
.build();

关于Java.net.SocketException : Connection reset when reading file from S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55071159/

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