缺少api密钥android Cloudinary上传错误
Posted
技术标签:
【中文标题】缺少api密钥android Cloudinary上传错误【英文标题】:Missing api key android Cloudinary upload error 【发布时间】:2020-01-14 03:58:54 【问题描述】:androidManifest.xml
<meta-data
android:name="CLOUDINARY_URL"
android:value="$cloudinaryUrl" />
在我上传文件的活动中,我初始化了 MediaManager
MediaManager.init(this);
我已经使用它的 uri 上传了文件:
val requestId = MediaManager.get().upload(uri).callback(object : UploadCallback
override fun onStart(requestId: String)
// your code here
override fun onProgress(requestId: String, bytes: Long, totalBytes: Long)
// example code starts here
val progress = bytes.toDouble() / totalBytes
// post progress to app UI (e.g. progress bar, notification)
// example code ends here
override fun onSuccess(requestId: String, resultData: Map<*, *>)
// your code here
override fun onError(requestId: String, error: ErrorInfo)
// your code here
override fun onReschedule(requestId: String, error: ErrorInfo)
// your code here
).dispatch()
问题是我收到错误'Missing api key'
。未签名的上传是否需要 api 密钥?
【问题讨论】:
是的,您的实施需要 CLOUDINARY_URL @sohel.eco 我已将 CLOUDINARY_URL 添加到清单元数据中。错误说明缺少 api_key。 你能在这里给出你的确切错误吗? "必须提供 api_key" - 完整的错误描述 【参考方案1】:通过查看文档中的here。在示例中您需要传递SignatureProvider
示例代码:
Map config = new HashMap();
config.put("cloud_name", "myCloudName");
MediaManager.init(this, new SignatureProvider()
@Override
public Signature provideSignature(Map options)
// replace the following with a function that calls your backend signature generation endpoint
SignResult res = signUpload(options); // example name of a function that implements a synchronous HTTPS call
return new Signature(res.getSignature(), res.getApiKey(), res.getTimestamp());
@Override
public String getName()
return "SampleSignatureProvider"; // for logging purposes
, config);
要启用签名上传,您需要将调用更新为 MediaManager 的 init 方法,带有您的类实例的名称 (初始化(上下文,签名提供者,地图))。你的课将是 每当必须签署上传文件时实施。
查看SignatureProvider 接口
编辑
对于未签名的上传,您没有提到 .unsigned("sample_preset")
和 MediaManager.get().upload(uri)
。欲了解更多信息see here
【讨论】:
这是用于签名上传,但我正在尝试未签名上传.. 不应该要求未签名上传的 api 密钥? @ghita 我已经修改了我的答案。请检查以上是关于缺少api密钥android Cloudinary上传错误的主要内容,如果未能解决你的问题,请参考以下文章
Cloudinary 错误:“错误”:“消息”:“缺少必需的参数 - 时间戳”