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/)