簡體   English   中英

通過Nodejs Firebase函數刪除文件Google Cloud Storage時出現FetchError

[英]FetchError while deleting files Google Cloud Storage via Nodejs Firebase functions

我在嘗試刪除單個存儲桶中的多個文件時遇到 fetchError。 我的應用程序需要查找舊對象,然后刪除用戶上傳到雲存儲的所有文件。

因此,當我遍歷要刪除的文件時,當要刪除的文件太多時,我似乎會得到一個 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' }

我的刪除功能:

我查詢一個集合,然后循環查詢快照以獲取各個文檔快照,從中獲取圖像和視頻文件路徑,並將其傳遞給deleteFile(myBucketName, mediaFilePath)

const gcs = new Storage();

async function deleteFile(bucketName, fileName) {

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

}

我在想,我是否應該更新要刪除的圖像的元數據並在另一個 function 中監聽 onMetaDataChange 進行存儲,然后將其刪除? 那會更好嗎?

這似乎不是存儲或雲功能的問題。 由於錯誤與套接字有關,因此處理多個請求的實現似乎是一個問題。 這里解釋得更好)。 您可以使用批處理請求,或者這個答案可以幫助您。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM