如何销毁图像 cloudinary swift 3 版本
Posted
技术标签:
【中文标题】如何销毁图像 cloudinary swift 3 版本【英文标题】:How destroy image cloudinary swift 3 version 【发布时间】:2018-06-25 19:35:57 【问题描述】:我无法使用 ios sdk 从云端删除图像,它一直要求我提供签名:
Optional(Error Domain=com.cloudinary.error Code=400 "(null)" UserInfo=message=Missing required parameter - signature)
要从我正在使用的 cloudinary 中删除图像:
let config = CLDConfiguration(cloudName: self.cloudname, apiKey: self.apiKey)
let cloudinary = CLDCloudinary(configuration: config)
print(self.separateIdFromUrl(url: (photo?.url)!))
_ = cloudinary.createManagementApi().destroy(self.separateIdFromUrl(url: (photo?.url)!))
【问题讨论】:
【参考方案1】:我找到了解决方案 只需给它您的 photoUrl 也检查this
func deletePhoto(url: String)
let photoName = "folderName/" + String(describing: url.split(separator: "/").last!.split(separator: ".").first!)
let config = CLDConfiguration(cloudName: "CloudName", apiKey: "API-KEY", apiSecret: "API-SECRET", secure: true)
cloudinary = CLDCloudinary(configuration: config)
cloudinary.createManagementApi().destroy(photoName) (response, err) in
print(response?.result)
【讨论】:
希望能提供更多信息。你能举一个由此产生的例子photoName
吗?另外——destroy
方法的第一个参数调用 objectId——你似乎传递了一些不同的东西。谢谢!【参考方案2】:
我刚刚解决了我的问题,我正在使用 nodejs 中的网络服务器管理网址。根据@ChrisPrince 的说法,cloudinary ios sdk 存在一个错误。 但是,您可以使用服务器内部的 admin api 使其工作:
cloudinary.v2.api.delete_resources([idCloud], function(error, result)console.log(result););
如果您遇到此问题,只需在后端配置 cloudinary 并调用它来删除照片。
【讨论】:
你能给我一个参考吗:they inform clearly that the iOS sdk isn't the ideal tool to remove images
。谢谢!
我认为某些操作只有在您使用管理 API cloudinary.com/documentation/admin_api 时才被允许,至少他们说您可以在这里完全控制 Cloudinay 数据库。因此,如果您尝试使用它,而不是 iOS SDK,您可能能够完成您想做的事情。我已经有一段时间没有遇到这个问题了,我现在找不到页面。但是在 iOS 文档中,您看不到有关删除资源的任何内容:cloudinary.com/documentation/ios_integration 我不明白的是,他们在 iOS SDK 中为此提供了一个方法。
感谢@Leonel Menezes Morato Lima。我已经向 Cloudinary 提出了关于此的支持请求。看看他们怎么说。
也谢谢你@ChrisPrince,我很期待。如果你发现了什么,请告诉我!我很快就会再次需要这个。
在一封支持电子邮件中,Cloudinary 承认了一个错误,至少在我尝试的用例中,从 iOS SDK 中删除图像会造成问题。他们表示他们正在努力解决问题。希望有更多人关注。以上是关于如何销毁图像 cloudinary swift 3 版本的主要内容,如果未能解决你的问题,请参考以下文章