使用Android,App引擎+数据存储区存储个人资料图像的最佳方式

时间:2016-04-02 11:01:31

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

我正在使用Android与谷歌应用引擎端点后端存储数据与数据存储区。 现在我想添加和存储用户图像。集成Google云端存储的最佳方式是什么:

  1. 在api中创建一个带有blob的新端点,并从端点调用云存储? Android - > - > App Engine端点 - > Google云端存储 Google云端存储 - > App Engine端点 - > - > Android的

  2. 直接从没有端点的Android设备调用Google云端存储? Android - > - > Google云端存储

  3. 更好的选择?

  4. 谢谢!

1 个答案:

答案 0 :(得分:1)

您的选项1仅在图像小于1MB时才有效,因为这是base64编码字符串的数据存储区中的最大大小(这是您传递给端点方法的大小)

您的选项2我不建议您,因为那样您将直接在客户端将服务帐户密钥存储到GCS,这不安全(除非您不在乎)。

选项3就是我所做的:

我有一个生成signed url的端点方法(或者您可以使用resumable url)。已签名的网址已定时并过期。对象名称和存储桶在签名的URL中指定。我在Android中调用我的端点方法来获取已签名的网址,并使用HttpURLConnection将图像上传到GCS。

与我一样,当您的对象上传到GCS时,您可能需要一个回调方法。这有点复杂,但您需要在Endpoints项目中创建一个servlet并进行相应的处理。该文档对Object Change Notification非常有帮助。