我正在使用Android与谷歌应用引擎端点后端存储数据与数据存储区。 现在我想添加和存储用户图像。集成Google云端存储的最佳方式是什么:
在api中创建一个带有blob的新端点,并从端点调用云存储? Android - > - > App Engine端点 - > Google云端存储 Google云端存储 - > App Engine端点 - > - > Android的
直接从没有端点的Android设备调用Google云端存储? Android - > - > Google云端存储
更好的选择?
谢谢!
答案 0 :(得分:1)
您的选项1仅在图像小于1MB时才有效,因为这是base64编码字符串的数据存储区中的最大大小(这是您传递给端点方法的大小)
您的选项2我不建议您,因为那样您将直接在客户端将服务帐户密钥存储到GCS,这不安全(除非您不在乎)。
选项3就是我所做的:
我有一个生成signed url的端点方法(或者您可以使用resumable url)。已签名的网址已定时并过期。对象名称和存储桶在签名的URL中指定。我在Android中调用我的端点方法来获取已签名的网址,并使用HttpURLConnection
将图像上传到GCS。
与我一样,当您的对象上传到GCS时,您可能需要一个回调方法。这有点复杂,但您需要在Endpoints项目中创建一个servlet并进行相应的处理。该文档对Object Change Notification非常有帮助。