如何从cloudinary媒体库中删除文件夹?

时间:2019-12-15 18:13:10

标签: node.js graphql cloudinary

我要删除那些没有任何资产的文件夹。

现在,我像项目/ uuid / image一样将图像保存在cloudinary中。

我使用此api方法cloudinary.api.delete_resources_by_prefix从UUID文件夹中删除资产,图像从cloudinary媒体库中删除,但是存在空文件夹。

2 个答案:

答案 0 :(得分:0)

documentation中,有一种delete_folder方法。

因此,使用Node,您可以执行以下操作:

cloudinary.v2.api.delete_folder("project/uuid", console.log);

答案 1 :(得分:0)

我找到了解决方案。 Cloudinary重命名将文件从用户的临时文件夹重命名为我的愿望文件夹。之后,我将删除临时文件夹和其中的所有文件。

在“重命名”承诺后,我找到了将delete_ressources_by_prefix和delete_folder结合使用的解决方案。另外,我更新了我的mongo数据库的信息

                   arrayPics = req.body.pics

                   let res_promises = arrayPics.map(pic => new Promise((resolve, reject) => {
                       
                       cloudinary.uploader.rename(`productPics/tmp-${req.user._id}/${pic.split('/').pop().split('.')[0]}`,
                       `productPics/${doc._id}/${pic.split('/').pop().split('.')[0]}`,function(err,result){
                           console.log(err)
                           resolve()
                       })
                   }))

                   Promise.all(res_promises).then(()=>{
                       cloudinary.api.delete_resources_by_prefix(`productPics/tmp-${req.user._id}`,function(err,result){
                               console.log(err)
                           cloudinary.api.delete_folder(`productPics/tmp-${req.user._id}`,function(err,result){
                               console.log(err)
                           });
                       })
                           for(let i=0;i<arrayPics.length;i++){
                               arrayPics[i] = arrayPics[i].replace(arrayPics[i].split('/').reverse()[1],doc._id)
                           }

                           products.update(
                               {_id: doc._id},
                               {$set: {images: arrayPics}}
                           )
                           res.send(doc._id)
                   })