Как сделать запрос AWS S3 повторяемым?

#javascript #node.js #amazon-web-services #amazon-s3 #aws-sdk

#javascript #node.js #amazon-веб-сервисы #amazon-s3 #aws-sdk

Вопрос:

Иногда, когда я загружаю несколько файлов из корзины S3 с помощью node sdk, время ожидания запроса для одной из загрузок истекает. Я бы хотел, чтобы запрос просто повторил попытку загрузки еще раз.

В ответе об ошибке 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 }
  

Комментарии:

1. можете ли вы поделиться своим кодом?

Ответ №1:

Я не уверен в том, как вы используете ресурсы, поскольку вы не предоставили общий доступ к своему коду, но это может вам помочь.

 // setting retries
var s3 = new AWS.S3({apiVersion: '2006-03-01', maxRetries:10}); 
  

Документация S3 sdk — MaxRetries