У меня есть облачная функция, которая загружает CSV-файлы в облачное хранилище.
Через некоторое время происходит сбой API со следующей ошибкой.Похоже, что это сбой при HTTP-вызове после повторных попыток, но не указано, в чем проблема.
Если я загружаю 6 файлов, обычно 3-4 успешно завершаются, а остальные выдают эту ошибку после некоторыхвремя.
Кто-нибудь сталкивался с подобной проблемой?
Error: Cannot parse JSON response
at ApiError (/user_code/node_modules/@google-cloud/storage/node_modules/@google-cloud/common/build/src/util.js:43:9)
at Util.parseHttpRespBody (/user_code/node_modules/@google-cloud/storage/node_modules/@google-cloud/common/build/src/util.js:185:42)
at Util.handleResp (/user_code/node_modules/@google-cloud/storage/node_modules/@google-cloud/common/build/src/util.js:134:117)
at retryRequest (/user_code/node_modules/@google-cloud/storage/node_modules/@google-cloud/common/build/src/util.js:422:22)
at onResponse (/user_code/node_modules/@google-cloud/storage/node_modules/retry-request/index.js:200:7)
at /user_code/node_modules/@google-cloud/storage/node_modules/teeny-request/build/src/index.js:158:17
at process._tickDomainCallback (internal/process/next_tick.js:135:7) message: 'Cannot parse JSON response'
Я использую версию 2.4.3 библиотеки @ google-cloud / storage nodejs.
Попытался обновить версию облачного хранилища с 1.x до 2.4.2 и теперь 2.4.3.
Попытка добавления имени корзины с помощью gs: //
Имя корзины не содержит имени файла, и это не ошибка.
Вот суть моего кода.
promises.push(Promise.all([
filesysRef
.outputFile(tmpFilePath, values.join('\n'))
.then(() =>
gcs.bucket(bucketName).upload(tmpFilePath, { destination: filePath } )),
filesysRef
.outputFile(tmpItemFilePath, items.join('\n'))
.then(() => gcs.bucket(bucketName)
.upload(tmpItemFilePath, { destination: itemFilePath }
)),
])
.then(() => {
gcs.bucket(bucketName).file(itemFilePath).exists()
.then(() => { hour.ref.remove().then(() => console.log('done removeal'));
console.log("after removal")}) // THIS DELETES FROM FIREBASE
.catch(() => console.log("File not found in GCS, hence hour not archived"))
}, err => console.log(err))
.catch(error => {
console.log(error)
})
.then(() => filesysRef.unlinkSync(tmpItemFilePath))
.catch(err => console.log(err))
.then(() => filesysRef.unlinkSync(tmpOrderFilePath))
.catch(err => console.log(err))
);
Функция в конечном итоге возвращает Promise.all([promises])
.
Ожидается успешное выполнение функции облака и загрузка файлов.