javascript - 如何使 AWS S3 请求可重试?
问题描述
有时,当我使用 node sdk 从 S3 存储桶下载多个文件时,其中一个下载的请求会超时。我希望请求只是重试尝试再次下载。
json 错误响应说retryable: false
。
有没有办法可以将其配置为true
?
这是错误:
{ TimeoutError: Connection timed out after 480000ms
at ClientRequest.<anonymous> (node_modules/aws-sdk/lib/http/node.js:83:34)
at Object.onceWrapper (events.js:272:13)
at ClientRequest.emit (events.js:180:13)
at ClientRequest.emit (domain.js:421:20)
at TLSSocket.emitTimeout (_http_client.js:703:34)
at Object.onceWrapper (events.js:272:13)
at TLSSocket.emit (events.js:180:13)
at TLSSocket.emit (domain.js:421:20)
at TLSSocket.Socket._onTimeout (net.js:396:8)
at ontimeout (timers.js:466:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:267:5)
message: 'Connection timed out after 480000ms',
code: 'TimeoutError',
time: 2019-04-01T17:58:41.010Z,
region: 'us-west-2',
hostname: 'bucket-name',
retryable: false,
statusCode: 200,
retryDelay: 129.76727762396757 }
解决方案
由于您没有共享代码,因此我不确定您是如何使用这些资源的,但这可能会对您有所帮助。
// setting retries
var s3 = new AWS.S3({apiVersion: '2006-03-01', maxRetries:10});