Запрос на многократную загрузку. из S3 signedUrl с использованием Node.js

#node.js #amazon-web-services #amazon-s3

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

Вопрос:

Я создал около 500 подписанных URL-адресов объектов, расположенных в S3. Теперь, когда я пытаюсь загрузить эти объекты с подписанного URL-адреса в цикле

 await Promise.all(signedUrls.map(async (url) => {
    const val = await request(url, (error, response) => {
        if (!error) {
            console.log('Downloaded successfully');
        } else {
            console.log('error in downloading', error.message);
        }
    });
}));
  

Я получаю эту ошибку для некоторых URL-адресов.

ошибка при загрузке getaddrinfo НЕ НАЙДЕНА s3.amazonaws.com s3.amazonaws.com:443

Я знаю, что все созданные подписанные URL-адреса верны, которые я проверял по отдельности, но подозреваю, что у S3 есть проблема с загрузкой файлов.

Необходимо проверить, существует ли какое-либо ограничение на S3 для запроса слишком большого количества файлов.

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

1. getaddrinfo() сбои могут быть сбоями поиска доменного имени. Попробуйте жестко закодировать домен в /etc/hosts и посмотрите, работает ли это. Если это произойдет, проверьте свой DNS-сервер и рассмотрите возможность использования другого, такого как 1.1.1.1 или 8.8.8.8 или 4.2.2.4 .

Ответ №1:

У S3 нет практического ограничения на количество загрузок или количество одновременных загрузок. Теоретически должно быть ограничение, потому что в центрах обработки данных AWS установлено ограниченное количество оборудования, но это ограничение настолько велико, что на практике вы не можете его достичь.

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

1. Теперь я получаю сообщение об ошибке «Не найдено ни по одному из подписанных URL-адресов», если я запрашиваю 320 загрузок через Promise.all. Странная вещь, если я отправляю запросы на загрузку пакетами, это работает. Что-то не так.

2. Используете ли вы предварительно подписанные URL-адреса? Если это так, проверьте, не истекает ли срок их действия.

3. Срок их действия не истекает, поскольку тот же подписанный URL, который выдает ошибку not found в коде nodejs, работает в браузере и загружает файл.

4. И вышеупомянутое поведение я вижу в 1 из 15 запросов или около того,