Cloudinary overwrite=false 仍将现有图像作为新图像上传

Posted

技术标签:

【中文标题】Cloudinary overwrite=false 仍将现有图像作为新图像上传【英文标题】:Cloudinary overwrite=false still uploads existing image as a new image 【发布时间】:2021-11-24 16:08:52 【问题描述】:

我正在使用 cloudinarys python 模块。 而且我在上传时遇到了一些麻烦。 我正在从 url 上传图片,如果图片已经上传,我不想上传。 但截至目前,图像再次上传,而是作为新图像。

imagedata = cloudinary.uploader.upload("cloudinary.uploader.upload("https://akamai.vgc.no/drfront/images/2021/10/01/w=1080;h=710;636204.jpg", folder="vg", overwrite=False)

这就是我上传的方式,它会返回:

'asset_id': 'c78b6d70ab1a1b8b7f76f67fa0695b7d',
 'public_id': 'vg/qcn4iq7jmhcohilyhlnv',
 'version': 1633332569,
 'version_id': '54c177500b747897946a8d8388988850',
 'signature': '8d04ad85f08ef00cf531f27f9f53380cccd80c4d',
 'width': 1080,
 'height': 710,
 'format': 'jpg',
 'resource_type': 'image',
 'created_at': '2021-10-04T07:29:29Z',
 'tags': [],
 'bytes': 132493,
 'type': 'upload',
 'etag': '8ddcfbf1ecd556dff38e41c62a201b2c',
 'placeholder': False,
 'url': 'http://res.cloudinary.com/mycloud/image/upload/v1633332569/vg/qcn4iq7jmhcohilyhlnv.jpg',
 'secure_url': 'https://res.cloudinary.com/mycloud/image/upload/v1633332569/vg/qcn4iq7jmhcohilyhlnv.jpg',
 'original_filename': 'w=1080;h=710;636204',
 'api_key': 'mykey'

如果我再次运行相同的代码,我的印象是图像不会重新上传,而是使用附加属性 existing: true 重新调整相同的数据

但它会上传与 cloudinary 中的新图像相同的图像,这是返回:

'asset_id': '498fe21c04b0fec97200c461df586045',
 'public_id': 'vg/pvvwkwqginvouraey9zq',
 'version': 1633333265,
 'version_id': '51c8e37cdceb002ba995ca50a4c88051',
 'signature': 'b451fcfc71e29eeda96cf80af5756fb95077c62c',
 'width': 1080,
 'height': 710,
 'format': 'jpg',
 'resource_type': 'image',
 'created_at': '2021-10-04T07:41:05Z',
 'tags': [],
 'bytes': 132493,
 'type': 'upload',
 'etag': '8ddcfbf1ecd556dff38e41c62a201b2c',
 'placeholder': False,
 'url': 'http://res.cloudinary.com/mycloud/image/upload/v1633333265/vg/pvvwkwqginvouraey9zq.jpg',
 'secure_url': 'https://res.cloudinary.com/mycloud/image/upload/v1633333265/vg/pvvwkwqginvouraey9zq.jpg',
 'original_filename': 'w=1080;h=710;636204',
 'api_key': 'mykey'

这在哪里搞砸了?

【问题讨论】:

在尝试下载之前测试图像是否存在。我没有阅读 API,但我认为“overwrite=False”只是在目标存在时另存为新文件 您没有在上传中指定 public_id - 因为您没有应用任何预设,默认情况下将分配一个随机文件名。你可以试试这个代码:imagedata = cloudinary.uploader.upload("cloudinary.uploader.upload("akamai.vgc.no/drfront/images/2021/10/01/w=1080;h=710;636204.jpg", public_id="vg/qcn4iq7jmhcohilyhlnv", overwrite=False) @LoicVdB 谢谢,这就像一个魅力添加作为答案,我不接受它 【参考方案1】:

在上传时不指定 public_id - 并且不应用任何上传预设,默认情况下将分配一个随机文件名。你可以试试这段代码:

imagedata = cloudinary.uploader.upload("cloudinary.uploader.upload("akamai.vgc.no/drfront/images/2021/10/01/w=1080;h=710;636204.jpg", public_id="vg/qcn4iq7jmhcohilyhlnv", overwrite=False)

【讨论】:

以上是关于Cloudinary overwrite=false 仍将现有图像作为新图像上传的主要内容,如果未能解决你的问题,请参考以下文章

Express、Multer 和 Cloudinary 未返回完整的 Cloudinary 响应

Cloudinary::CarrierWave 如何在 Cloudinary 中选择上传文件夹

Heroku Cloudinary 插件与 cloudinary.com。有啥不同?

由于“cloudinary.uploader 未定义”错误,从 cloudinary 中删除媒体文件失败

Android Studio:将图像从 Android Studio 上传到 Cloudinary (https://cloudinary.com/)

我正在尝试使用 Cloudinary post API 上传图像而不使用 Cloudinary SDK