Удалить файл с помощью MulterGoogleStorage и NestJS

#node.js #google-cloud-storage #nestjs #multer

# #node.js #google-облачное хранилище #nestjs #мультер

Вопрос:

Как удалить файл из хранилища Google с помощью MulterGoogleStorage и NestJS? Я не могу найти ни одного примера или документов. У меня есть следующее хранилище для загрузки файлов:

 const storage = new MulterGoogleStorage({
  projectId: 'myprojectId',
  keyFilename: path.join(__dirname, '../../../mykeyfile.json'),
  bucket: 'mybucketname',
  filename: (req: Request, file, cb) => {
    let dir = '';
    const filePath = file.originalname.split('/');        
    if(filePath.length > 1) {
        dir = `${filePath[0]}/`;
    }
    const fileExt = file.originalname.split('.').pop();
    cb(null, `${dir}${Date.now()}.${fileExt}`);
  }
});
 

Ответ №1:

Вы можете создать что-то вроде этого, которое будет перебирать массив, содержащий все объекты, и удалять.

При этом используется функция удаления из документации облачного хранилища Google.

 const storage = new Storage({keyFilename: 'google-credentials.json'});
const imagesToDelete = ['fileName1', 'fileName2', 'fileName3'];
    
    imagesToDelete.map(async (image) => {
      await storage
        .bucket('yourbucketName')
        .file(image)
        .delete();
    });
 
 

Комментарии:

1. Спасибо большое, это работает! Я хочу использовать MulterGoogleStorage, но, похоже, ваше предложение — единственный способ решить эту проблему. Я подожду неделю, может быть, кто-нибудь найдет другое решение, я приму ваш ответ.