gpt4 book ai didi

java - Amazon S3 上传 NoHttpResponseException

转载 作者:太空宇宙 更新时间:2023-11-04 13:44:16 26 4
gpt4 key购买 nike

我有用于将文件上传到 Amazon S3 的下一个代码:

AmazonS3Client client = new AmazonS3Client(credentials, 
new ClientConfiguration().withMaxConnections(100)
.withConnectionTimeout(120 * 1000)
.withMaxErrorRetry(15));
TransferManager tm = new TransferManager(client);
TransferManagerConfiguration configuration = new TransferManagerConfiguration();
configuration.setMultipartUploadThreshold(MULTIPART_THRESHOLD);
tm.setConfiguration(configuration);

Upload upload = tm.upload(bucket, key, file);

try {
upload.waitForCompletion();
} catch(InterruptedException ex) {
logger.error(ex.getMessage());
} finally {
tm.shutdownNow(false);
}

它可以工作,但是一些上传(1GB)会产生下一条日志消息:

 INFO AmazonHttpClient:Unable to execute HTTP request: bucket-name.s3.amazonaws.com failed to respond
org.apache.http.NoHttpResponseException: bucket-name.s3.amazonaws.com failed to respond

我尝试在没有 AmazonS3Client 的情况下创建 TransferManager,但没有帮助。

有什么办法可以解决吗?

最佳答案

日志消息告诉您,向 S3 发送数据时发生暂时性错误。您已配置 .withMaxErrorRetry(15),因此 AmazonS3Client 会以透明方式重试失败的请求,并且整体上传会成功。

这里不一定有什么需要修复的 - 有时数据包会在网络上丢失,特别是当您尝试一次推送大量数据包时。等待一段时间然后重试通常是处理此问题的正确方法,而这正是已经发生的情况。

如果您愿意,您可以尝试关闭 MaxConnections 设置来限制一次上传的文件 block 数 - 可能有一个最佳点,您仍然可以获得合理的吞吐量,但不会使网络过载。

关于java - Amazon S3 上传 NoHttpResponseException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31023749/

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