有没有人有一个GAE / Cloud Endpoints API方法(用Java)的例子,它可以从Android应用程序中获取图像并将其上传到Google Cloud 端存储?
我似乎无法找到关于如何做到这一点的任何样本,但根据我的理解,这是可能的 .
编辑:教程here显示了如何在eclipse中向谷歌应用引擎添加依赖项,并将图像上传/下载到谷歌 Cloud 存储 . 是否有可能以某种方式使用Cloud Endpoints执行此操作..?毕竟,它们都是Google App Engine .
我想将尽可能多的上传/下载代码卸载到我的Cloud Endpoints API方法中,而不是编写Android内部的所有代码 . 这将允许我在其他客户端上重用我的Cloud Endpoints API .
更多信息我发现:https://developers.google.com/api-client-library/java/apis/storage/v1#sample
看起来这是 Cloud endpoints 后端的gradle依赖?:
dependencies {
compile 'com.google.apis:google-api-services-storage:v1-rev66-1.21.0'
}
编辑:
您应该在 Cloud endpoints 中使用此依赖关系:
compile 'com.google.appengine.tools:appengine-gcs-client:0.5'
3 回答
解决方案:https://github.com/thorrism/GoogleCloudExample
启用Google Cloud 端存储:=> https://console.developers.google.com/apis
生成并下载密钥P12:=> https://console.developers.google.com/iam-admin/iam创建一个名为"assets"的文件夹,并将密钥放在那里:=> app / src / main / assets / "yourKey.P12"
对于每个人都可以访问您上传的文件阅读不要忘记在您的Bucket上添加权限
您可以将文件上传到Google Storage using Json Api
您可能希望也可能不希望通过 endpoints 将文件元数据存储到数据存储区 .
您可能希望也可能不希望通过 endpoints 对用户进行身份验证,然后才能将文件存储到存储 .
我想说的是存储/ endpoints /数据存储是三个不同的东西,你不需要一起使用它们 .
有用链接:https://github.com/pliablematter/simple-cloud-storage
您无法直接将(大)文件上载到Endpoints API方法,而是需要使用blobstore(或GCS)(https://cloud.google.com/appengine/docs/python/blobstore/)接收它们 . 这需要以下内容:
在服务器上设置blobstore上传处理程序(这只是一个常规的webapp2处理程序) .
公开调用
blobstore.create_upload_url()
的Endpoints方法,然后将上传URL返回到您的App .在应用程序中,将图片上传到该上传URL;然后,您可以在上传处理程序中访问该文件,您可以将其移动到GCS,数据存储区或其他位置 .