Я написал функцию загрузки в NodeJS для загрузки изображений в облачное хранилище Google. Функция отлично работает, когда я пытаюсь загрузить от 200 до 400 изображений. Однако я попытался загрузить более крупный набор данных (3000+ изображений), сначала последовательность загрузки кажется нормальной, а затем внезапно возникает ошибка. Когда я смотрю на ведро из облачной консоли Google, мне кажется, что загружены только некоторые изображения.
Я попытался осмотреться, чтобы увидеть, сталкивался ли кто-нибудь с той же проблемой, что и я, но, похоже, я не могу найти подобных случаев. Был бы очень признателен, если бы кто-нибудь мог указать мне в правильном направлении.
Вот мой код для функции загрузки gcp.
const { Storage } = require("@google-cloud/storage");
const gc = require("../config/gcp");
const uploadImages = async (req, pid, folder) => {
let promises = [];
const bucket = gc.bucket(pid);
req.forEach(image => {
const blob = bucket.file(`${folder}/${image.originalname}`);
const promise = new Promise((resolve, reject) => {
// eslint-disable-next-line security/detect-non-literal-fs-filename
const blobStream = blob.createWriteStream({
metadata: {
contentType: image.mimetype,
},
resumable: false,
});
blobStream
.on("finish", async () => {
try {
await blob.makePublic();
resolve();
} catch (error) {
reject(error);
}
})
.on("error", err => {
console.log(err.message);
reject(err);
})
.end(image.buffer);
});
promises.push(promise);
});
return Promise.all(promises)
.then(() => {
promises = [];
console.log("Images Uploaded");
})
.catch(err => {
throw Error(err.message);
});
};
Вот ошибка, которую я внезапно получил бы посреди последовательности загрузки.
Internal server error: Error: request to https://www.googleapis.com/oauth2/v4/token failed, reason: connect EHOSTUNREACH 74.125.200.95:443