FirebaseStorage:如何删除节点中前缀和限制为 folders/files 的目录?
FirebaseStorage: How to Delete Directories with prefix and limit of folders/files in Node?
是否有任何选项可以删除带有前缀和限制的子文件夹和文件,因为在删除带有简单前缀的过程中由于限制 resources/memory 而出现错误。
const removeFolderFromBucket = folderPath => {
return new Promise((resolve, reject) => {
return storage.bucket(bucketName).deleteFiles({ prefix: folderPath, force: true }, function(error) {
if (error) {
console.error(`Failed to remove folder: ${folderPath}. Error :${error}`);
// reject(error);
}
resolve({ status: "ok", code: 200 });
});
}).catch(error => {
console.error(`Failed to remove folder: ${folderPath} in promise catch. Error: `, error);
// throw error;
});
};
所以我可以在递归中使用该函数,限制为 await/promise,并且由于文件夹路径(前缀)中的子文件夹和文件的数量没有问题。
提前致谢。
我找到了解决方案,但不知道 - 它是好的还是更好的方法?请查看并提出建议。
while (true) {
const [files] = await storage
.bucket(bucketName)
.getFiles({ prefix: path, maxResults: 50 });
const fileCount = files.length;
for (const file of files) {
await file.delete();
}
if (fileCount < 50) {
break;
}
}
是否有任何选项可以删除带有前缀和限制的子文件夹和文件,因为在删除带有简单前缀的过程中由于限制 resources/memory 而出现错误。
const removeFolderFromBucket = folderPath => {
return new Promise((resolve, reject) => {
return storage.bucket(bucketName).deleteFiles({ prefix: folderPath, force: true }, function(error) {
if (error) {
console.error(`Failed to remove folder: ${folderPath}. Error :${error}`);
// reject(error);
}
resolve({ status: "ok", code: 200 });
});
}).catch(error => {
console.error(`Failed to remove folder: ${folderPath} in promise catch. Error: `, error);
// throw error;
});
};
所以我可以在递归中使用该函数,限制为 await/promise,并且由于文件夹路径(前缀)中的子文件夹和文件的数量没有问题。
提前致谢。
我找到了解决方案,但不知道 - 它是好的还是更好的方法?请查看并提出建议。
while (true) {
const [files] = await storage
.bucket(bucketName)
.getFiles({ prefix: path, maxResults: 50 });
const fileCount = files.length;
for (const file of files) {
await file.delete();
}
if (fileCount < 50) {
break;
}
}