【问题标题】:FirebaseStorage: How to Delete Directories with prefix and limit of folders/files in Node?FirebaseStorage:如何删除节点中带有前缀和文件夹/文件限制的目录?
【发布时间】:2020-11-24 08:25:14
【问题描述】:

是否有任何选项可以删除带有前缀和限制的子文件夹和文件,因为在使用简单前缀删除期间由于资源/内存有限而出现错误。

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;
    });
  };

所以我可以在递归中使用该函数,但有等待/承诺的限制,并且由于文件夹路径(前缀)中的子文件夹和文件的数量而没有问题。

提前谢谢你。

【问题讨论】:

    标签: node.js firebase google-cloud-functions firebase-storage bucket


    【解决方案1】:

    我已经找到了解决方案,但不知道 - 这是一种更好的方法吗?请查看并提出建议。

    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;
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2023-03-26
      • 2010-11-20
      • 1970-01-01
      • 2010-11-12
      • 1970-01-01
      • 2022-01-07
      • 2019-11-21
      相关资源
      最近更新 更多