如何使用GAE / Cloud Endpoints API方法将图像上传到Google云端存储

时间:2016-03-23 20:54:48

标签: google-app-engine google-cloud-storage google-cloud-endpoints objectify

有没有人有一个GAE / Cloud Endpoints API方法(在Java中)的示例,可以从Android应用程序中获取图像并将其上传到Google云端存储?

我似乎无法找到关于如何做到这一点的任何样本,但根据我的理解,这是可能的。

编辑: 教程here显示了如何在eclipse中向google app引擎添加依赖项,以及如何将图像上传/下载到Google Cloud Storage。是否有可能以某种方式使用Cloud Endpoints执行此操作..?毕竟,它们都是Google App Engine。

我想将尽可能多的上传/下载代码卸载到我的Cloud Endpoints API方法中,而不是编写Android内部的所有代码。这将允许我在其他客户端上重用我的Cloud Endpoints API。

更多信息我发现:https://developers.google.com/api-client-library/java/apis/storage/v1#sample

看起来这是云端点后端的gradle依赖项?:

dependencies {
    compile 'com.google.apis:google-api-services-storage:v1-rev66-1.21.0'
}

编辑:

您应该在云端点中使用此依赖关系:

compile 'com.google.appengine.tools:appengine-gcs-client:0.5'

3 个答案:

答案 0 :(得分:2)

您可以将文件上传到Google 存储 using Json Api

您可能希望也可能不希望通过端点将文件元数据存储到数据存储区

您可能希望也可能不希望通过端点对用户进行身份验证,然后才能将文件存储到存储。

我想说的是存储/端点/数据存储是三个不同的事情,你不需要一起使用它们。

有用的链接:https://github.com/pliablematter/simple-cloud-storage

答案 1 :(得分:1)

您不能直接将(大)文件上传到Endpoints API方法,而是需要使用blobstore(或GCS)(https://cloud.google.com/appengine/docs/python/blobstore/)接收它们。这需要以下内容:

  • 在您的服务器上设置blobstore上传处理程序(这只是一个常规的webapp2处理程序)。
  • 公开调用blobstore.create_upload_url()的端点方法,然后将上传网址返回给您的应用。
  • 在应用内,将图片上传到该上传网址;然后,您可以在上传处理程序中访问该文件,您可以将其移至GCS,数据存储区或其他位置。

答案 2 :(得分:1)

解决方案:https://github.com/thorrism/GoogleCloudExample

启用Google云存储:=> https://console.developers.google.com/apis

生成并下载密钥P12:=> https://console.developers.google.com/iam-admin/iam 创建一个名为" assets"的文件夹。把钥匙放在那里: =>应用程序/ SRC /主/资产/" yourKey.P12"

每个人都可以访问您上传的文件,不要忘记在Bucket上添加权限