FirebaseStorage: как удалить каталоги с префиксом и лимитом папок / файлов в Node? - PullRequest
0 голосов
/ 04 августа 2020

Есть ли возможность удалить подпапки и файлы с префиксом и ограничить получение ошибки из-за ограниченных ресурсов / памяти во время удаления с простым префиксом.

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

Так что я могу использовать функцию в рекурсии с ограничением с ожиданием / обещанием и без проблем из-за количества подпапок и файлов, имеющих путь к папке (префикс).

Заранее спасибо.

1 Ответ

1 голос
/ 04 августа 2020

У меня есть решение, но я не знаю - это хороший и лучший подход? Пожалуйста, посмотрите и предложите.

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;
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...