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

Node.js 如何从cloudinary媒体库中删除文件夹?,node.js,graphql,cloudinary,Node.js,Graphql,Cloudinary,我想删除那些没有任何资源的文件夹 目前,我将图像保存在cloudinary中,就像这个项目/uuid/image一样 我使用此api方法cloudinary.api.delete\u resources\u by\u prefix从UUID文件夹中删除资产,图像从cloudinary媒体库中删除,但存在空文件夹。从中,有一个删除\u文件夹的方法 因此,使用Node,您可以执行如下操作: cloudinary.v2.api.delete_folder("project/uuid", console

我想删除那些没有任何资源的文件夹

目前,我将图像保存在cloudinary中,就像这个项目/uuid/image一样

我使用此api方法
cloudinary.api.delete\u resources\u by\u prefix
从UUID文件夹中删除资产,图像从cloudinary媒体库中删除,但存在空文件夹。

从中,有一个
删除\u文件夹的方法

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

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

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

我找到了一个解决方案,我将按前缀删除资源和在“重命名”承诺后删除文件夹结合起来。此外,我还更新了mongo DB的信息

                   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)
                   })
arrayPics=req.body.pics
让res_promises=arrayPics.map(pic=>newpromise((解析,拒绝)=>{
cloudinary.uploader.rename(`productPics/tmp-${req.user.\u id}/${pic.split('/').pop().split('.')[0]}`,
`productPics/${doc.\u id}/${pic.split('/').pop().split('.')[0]}`,函数(错误,结果){
console.log(错误)
解决()
})
}))
承诺。所有(承诺)。然后(()=>{
api.delete\u resources\u by_前缀(`productPics/tmp-${req.user.\u id}`,函数(err,result){
console.log(错误)
delete_文件夹(`productPics/tmp-${req.user._id}`,函数(err,result){
console.log(错误)
});
})

对于(让i=0;i显然,如果您在
cloudinary.api.delete_resources\u by_prefix
之后立即调用此函数,它将回答
{message:'Folder is notempty',http\u code:400}
。我使用相同的函数,但我的应用程序崩溃,同时返回了'Folder is empty message'。知道吗?