#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 запросов или около того,