FetchError при удалении файлов Google Cloud Storage с помощью Nodejs функций Firebase - PullRequest
0 голосов
/ 24 апреля 2020

Я получаю fetchError при попытке удалить несколько файлов в одной корзине. Мое приложение требует поиска старых объектов, а затем удаления любых файлов, загруженных пользователем в облачное хранилище.

Поэтому, когда я oop просматривал файлы для удаления, я, кажется, получаю fetchError, когда слишком много файлов для удаления.

Сначала все работало нормально (фаза тестирования), но теперь я замечаю, что я получаю fetchError, когда слишком много файлов для одновременного удаления.

ошибка:

{ FetchError: request to https://storage.googleapis.com/storage/v1/b/bucketName/o/filePath? failed, reason: socket hang up
    at ClientRequest.<anonymous> (/srv/node_modules/node-fetch/lib/index.js:1453:11)
    at emitOne (events.js:116:13)
    at ClientRequest.emit (events.js:211:7)
    at TLSSocket.socketErrorListener (_http_client.js:401:9)
    at emitOne (events.js:116:13)
    at TLSSocket.emit (events.js:211:7)
    at emitErrorNT (internal/streams/destroy.js:66:8)
    at _combinedTickCallback (internal/process/next_tick.js:139:11)
    at process._tickDomainCallback (internal/process/next_tick.js:219:9)
  message: 'request to https://storage.googleapis.com/storage/v1/b/bucketName/o/filePath? failed, reason: socket hang up',
  type: 'system',
  errno: 'ECONNRESET',
  code: 'ECONNRESET' }

my deleteFunction:

Я запрашиваю коллекцию, затем l oop querysnapshot, чтобы получить отдельные снимки документов, где я получаю изображения и видеофайлы filePath, которые я передаю в deleteFile(myBucketName, mediaFilePath)

const gcs = new Storage();

async function deleteFile(bucketName, fileName) {

 await gcs.bucket(bucketName).file(fileName).delete();

}

Я думаю, мне следует обновить метаданные изображений, которые нужно удалить, и прослушать другую функцию onMetaDataChange для хранения, а затем удалить ее? Будет ли это лучше?

1 Ответ

0 голосов
/ 25 апреля 2020

Похоже, что это не проблема с функциями хранилища или облака. Кажется, проблема в вашей реализации для обработки множественных запросов, так как ошибка связана с сокетом. ( Вот объясняется лучше). Вы можете использовать пакетных запросов или этот ответ может вам помочь.

...