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

时间:2015-05-23 07:41:47

标签: java android google-app-engine google-cloud-endpoints blobstore

对不起,如果这是一般的。我可以指出正确的方向。

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

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

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

编辑:此问题仅针对后端。在android中,我可以轻松地完成http帖子。在端点中执行此操作时我只是迷失了

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

如果您已经在使用端点,则可以按照@Romin的建议将图像发送为Base64,或者使用blobstore / GCS服务分两步上传图像,首先获取上传URL(通过端点)和然后将您的图片发布到该网址。

答案 2 :(得分:0)

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

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

因此,在您的情况下,我宁愿对发送图像文件和某些参数的URL发布帖子,而不是将其链接到数据存储区中的正确位置(即用户ID)。

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