Я хочу загрузить большое количество изображений, используя Axios / Node.js
Это код, который я использую для загрузки изображений, а затем сохранить их на диск:
exports.DownloadImages = function (provider, data) {
data.forEach(function (vehicle) {
var images = vehicle.Gallery;
images.forEach(function (image) {
const url = transformation.replaceAll(image, '[size]', 'original');
const filename = transformation.replaceAll(transformation.ImageFilename(url), '[size]', 'original');
const writer = fs.createWriteStream('./export/' + provider + '/' + filename);
api.get(url, { responseType: 'stream' }).then((response) => {
response.data.pipe(writer);
})
.catch((error) => {
console.error('[HELPER] DownloadImages ' + error + ' on Image ' + url);
});
});
});
};
В моем текущем тесте я загружаю около 500 изображений, я бы сказал, что 80% изображений загружены правильно и сохранены, однако я получаю несколько ошибок в журнале:
[HELPER] DownloadImages Error: read ECONNRESET on Image https:\\xxxx.com\imageurl.png
И когда я просматриваю загруженные изображения, кажется, что некоторые из них загружены только частично (я вижу верхнюю часть изображения, но остальное отсутствует, например)
РЕДАКТИРОВАТЬ:
Я добавил ниже к моему запросу получения axios, который, кажется, немного помогает:
httpsAgent: new https.Agent({ keepAlive: true })
Но сейчас я получаю следующие ошибки:
Error: socket hang up
Error: Client network socket disconnected before secure TLS connection was established