首页 文章

使用Android,App引擎数据存储区存储配置文件图像的最佳方式

提问于
浏览
1

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

  • 在api中创建一个带有blob的新 endpoints ,并从 endpoints 调用 Cloud 存储? Android - > - > App Engine endpoints - > Google Cloud 存储Google Cloud 端存储 - > App Engine endpoints - > - > Android

  • 直接从没有 endpoints 的Android设备调用Google Cloud 端存储? Android - > - > Google Cloud 存储

  • 更好的选择?

谢谢!

1 回答

  • 1

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

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

    选项3是我做的:

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

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

相关问题