【问题标题】:How do you upload a file using an app created in Android Studio to Google Cloud Storage?如何使用在 Android Studio 中创建的应用将文件上传到 Google Cloud Storage?
【发布时间】:2016-07-22 11:07:19
【问题描述】:

有人愿意花时间一步一步地记录这个看似简单的任务吗?

我不熟悉 java 和最新的 Google Cloud Platform API。我无法弄清楚如何从 Android 应用程序将文件上传到 Google Cloud Platform 的简单任务。大多数示例都是三年前的,或者不是端到端的。无论哪种方式,它们在某些时候都如此神秘地失败,以至于我无法弄清楚如何进行。例如,异常I'm getting with using the simple-cloud-storage demo 是“null”。我什至无法弄清楚是什么产生了“null”。

到目前为止,我只是通过使用端点教程成功地做某事:https://cloud.google.com/appengine/docs/python/endpoints/getstarted/clients/android/ 但是在那个演示中没有谈论交换文件。

【问题讨论】:

    标签: java android google-app-engine google-cloud-storage google-cloud-platform


    【解决方案1】:

    完整的代码示例是here。此代码示例是从 Google HelloEndpoints tutorial 创建的。这可能是在 Android 中使用 GCS 的糟糕实现,但它的工作方式与目前可用的大多数示例不同。

    实现这一目标的步骤:

    1. Create a GCS bucketservice account credentials
    2. 获取 .p12 私钥并将其放入 src/main/res/raw。您必须删除 .p12 扩展名并将 - 替换为 _。你 也需要密码,所以请随身携带。
    3. 在 MainActivity.java 中查看 public void onClickFileChooser(View view)。这样做是调用一个类,它允许您 导航并选择一个文件。有一些注释掉的代码 与服务器检查上传 URL,以防您想尝试 使用 blobstore API 存储文件。我想不通, 所以我尝试了GCS。 GCS 的东西是下一段代码。你会注意到 这是一个两步过程。有一些globals defined for GCS 因为我不是一个好的程序员。
    4. 第一步是获取“Google 凭据”。 code 使用 keystore.load(getResources().openRawResource(R.raw.thomasmhardy_ebc515c808a6) 加载私钥 并做一些其他的事情。您可能需要更改密钥 密码。查找“notasecret”并将其替换为您的密码。
    5. 文件的实际存储为next。您会看到 URI 是根据 Google example 设置的。接下来,我设置了一个异步 任务,因为 Android 不希望您在网络上做任何事情 在主线程中。该任务首先刷新 GoogleCredential。 完成后,它使用android-async-http 发布 文件到 GCS。请注意,Authorization 的标头连接了“Bearer " 在访问令牌之前。上传文件。
    6. 所有这些都需要一些依赖项。查看gradle
    7. 我还必须enable multiDex

    注意:我删除了我的私钥“thomasmhardy_ebc515c808a6”的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-31
      • 1970-01-01
      • 1970-01-01
      • 2013-03-29
      • 2017-04-02
      • 2019-11-07
      • 2023-03-13
      • 1970-01-01
      相关资源
      最近更新 更多