如何使用 GAE 和 google 端点从 android 上传文件(图片)并保存到 blobstore?

How do I upload a file(picture) from android and save to the blobstore using GAE and google endpoints?

对不起,如果这有点笼统。希望我能指出正确的方向。

我有一个包含即时消息的 android 应用程序。我还想添加在消息中发送照片的功能。我的后端建立在 GAE 和云端点上,并用 Java.

编写

到目前为止,我已经研究了 google 云存储、blobstore、java servlet 页面等。但是无法找到明确的解决方案(或使用端点的示例)。

因此,正如问题所述,我如何使用 android 和 GAE 端点后端从 blobstore 发送和提供图像?

编辑:这个问题只针对后端。在 android 中,我可以轻松完成 http post。在端点

中执行此操作时,我只是迷路了

我建议采用以下方法来实现您的要求:

  • 从您的客户端将图像数据作为 base64 编码文本传递。
  • 在服务器端,您可以提取图像内容,然后使用可用的众多选项之一,包括 Blobstore、Google 云存储等。我建议您使用 Google Cloud Storage 因为这是推荐的方法。如果您更喜欢数据存储,请记住数据大小限制为 1 MB,因此您可能会达到该限制,具体取决于您正在处理的图像大小。
  • 此处的 SO 问答包含许多您可以使用的相关代码:Sending images as a base64 string to a google cloud endpoint from cms

如果您已经在使用端点,您可以按照@Romin 的建议将图像作为 Base64 发送,或者使用 blobstore/GCS 服务分两步上传您的图像,首先获取上传 URL (通过端点)然后 post 你的图像 URL.

为什么不使用简单的 HTTP POST 来处理图片上传?

当我使用 blobstore 时,我通常有一对处理程序,一个用于上传,一个用于提供图像。

因此,在您的情况下,我宁愿执行 post 到 URL 发送图像文件和一些参数,而不是 link 将其发送到数据存储中的适当位置(即用户 ID)。

然后,使用端点我将拥有相同的 linking 键并使用具有给定参数的服务处理程序显示图像。