【发布时间】:2020-04-26 18:40:59
【问题描述】:
我在尝试删除单个存储桶中的多个文件时遇到 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();
}
我在想,我是否应该更新要删除的图像的元数据并在另一个函数中监听 onMetaDataChange 进行存储,然后将其删除?这样会更好吗?
【问题讨论】:
标签: node.js firebase google-cloud-storage