从cloudinary删除带有完整url的图像不起作用

编程入门 行业动态 更新时间:2024-10-11 01:11:41

从cloudinary删除带有完整url的图像<a href=https://www.elefans.com/category/jswz/34/1771377.html style=不起作用"/>

从cloudinary删除带有完整url的图像不起作用

[我正在尝试通过我的Express应用程序从cloudinary中删除图像,仅当我缩短URL使其与我创建的cloudinary文件夹匹配时,此方法才有效

pictures : "Images/zebre_s2gtto"

我的图片的完整网址是

.jpg

主要问题是图像URL存储在数据库中,并且包含完整的图像URL。

[当我想从cloudinary和我的数据库中删除图像时,如果我提到完整的url,则从我的数据库中删除该图像,但不在cloudinary中,如果我提到从cloudinary的短网址,则从cloudinary中删除该图像,但是该网址未从我的数据库中删除,因为mongo正在等待图像的完整网址,而cloudinary则要求缩短网址。

我的猫鼬模式

{
  pictures : Array
}

我想做什么

deletePictures = async (req, res) => {
  const img = req.body.pictures
  try {
    await cloudinary.v2.uploader.destroy(
      img, { invalidate: true, resource_type: "image" }, async (error, result)=> {
      if (error){
        return res.status(400).json(error)
      }
       await  Property.updateOne({$pull : { pictures: img }});
      res.json(result)
      })
  }
  catch (e) {
    res.status(500).json('Something went wrong')
  }
};

使用PUT方法的邮递员测试

{
    "pictures" : ".jpg"
}

回答如下:无法通过URL从Cloudinary中删除资源,您需要使用public_id(即您所指的“短URL”)。最常见的工作流程是将public_id存储在数据库中,因为它用于所有API操作(删除,更新等)。对于URL生成,您可以使用public_id并将其传递到Cloudinary SDK帮助程序方法中,该方法在本地构造URL并将URL输出到资产。也可以为这些方法提供任何一组转换选项。请参见以下部分,以获取每个SDK的示例-https://cloudinary/documentation/image_transformations#embedding_images_in_web_pages

我建议您从存储URL迁移,并更新数据库以引用并保留public_id。您可以运行一个一次性脚本从现有URL中提取public_id,然后为当前记录相应地更新架构。对于新上传的文件,您可以直接从API响应中获取public_id参数。

更多推荐

从cloudinary删除带有完整url的图像不起作用

本文发布于:2024-05-07 15:56:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1757021.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:不起作用   图像   完整   cloudinary   url

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!