当前位置: 首页 > 知识库问答 >
问题:

缺少api密钥android Cloudinary上载错误

裴金鑫
2023-03-14

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密钥吗?

共有1个答案

潘银龙
2023-03-14

通过查看这里的文档。在本例中,您需要传递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);

要启用签名上传,需要使用类的实例名(init(Context,SignatureProvider,Map))更新对MediaManager的init方法的调用。每当上传需要签名时,你的类就会被实现。

请参阅SignatureProvider界面

编辑

对于未签名的上传,您没有提到。使用MediaManager未签名(“示例预设”)。get()。上传(uri)。有关更多信息,请参见此处

 类似资料:
  • 我正在设置一个spring boot应用程序,其中日志被发送到google cloud stackdriver。我正在使用logback appender进行堆栈驱动程序日志记录,并使用其文档中的logback文件https://cloud.google.com/logging/docs/setup/java. 我将Intellij中的GOOGLE_CLOUD_PROJECT和GOOGLE_APP

  • 我的情况很像SemiFixed:“production”环境缺少`secret_key_base`: 我的配置/秘密 我在/etc/environment中添加了一个条目,这样当我登录并键入 我得到了我用耙子秘密创建的长串。但是,对于“生产”环境,即使重置了整个计算机,我仍然收到500错误,丢失secret_key_base,在config/secrets.yml中设置此值。那么还有什么可能出错呢

  • 我尝试让 SHA1 用于火基地,但我无法获得 SHA1 在JavaVirtualMachines我使用jdk1.8.0_202.jdk 我试着进入梯度- = keytools-exportcert-alias androiddedegkey-keystore~/. android/debug.keystore-list-v keytool-list-v-keystore/Users/bobhope

  • 我们正在使用城市飞艇向我们的Android应用程序发送推送消息。 在此过程中,我们需要使用Firebase控制台中提供的“服务器密钥”配置飞艇- 根据那里的建议,我们正在尝试从GCM迁移到FCM。 问题是“Firebase Cloud Messaging API(V1)”配置中缺少“服务器密钥”。它在“云消息传递API(遗留)”配置中仍然可用,但建议进行迁移。 遵循FCM配置中的链接对这个问题没有

  • 问题内容: 我正在尝试连接到远程主机,并检查文件是否存在。在此阶段,我仅尝试连接,但是出现错误: 我试图找出其他人是否有像我一样的问题,但我却找不到。 我知道我需要在此过程中以某种方式检查knowns_hosts,但我只是想不通如何… 问题答案: 您在这里寻找的是: 然后将您的hostKey定义行替换为 有关此主题的更多信息: 我从中获取部分代码的官方样本 为什么现在需要hostKey 编辑:还请

  • 我正在尝试使用带有多绑定的Dagger2创建我的ViewModel的依赖注入,但我收到了这个错误,我无法使其工作,我尝试了几个答案(如下),但没有一个对我有帮助。 这是我收到的错误: 这是我的密码 此外,以下是我的应用程序依赖项版本: 我知道这个问题有几个问题,但我试了几个,没有一个对我有效。 以下是我尝试阅读和检查的解决方案链接: https://github.com/android/archi