5

有人可以请澄清这一点对我来说。我正在阅读有关blobstore的开发者页面https://developers.google.com/appengine/docs/java/blobstore/overview。我似乎无法绕过保存和检索blob的过程?这听起来像如何使用blobstore处理android图像

  • Android应用程序将保存图像之后的图像直接发送至Blobstore
  • ,Blob存储区将随后返回的BlobKey我的后台,我把在数据存储

这是过程吗?也许是因为我过了漫长的一天,但我看不到它。如果有人有他们不介意共享的例子,请发布。我只需要将android中的图像保存在blobstore中,然后能够使用blobkey或其他方式检索它们。

我已经看

对于我的生活,我不知道为什么他们没有做它对我来说。

我想有些问题是:

  • 如何安卓知道从哪里团块发送到?我的意思是,Google是否将我的blobstore实例与其他人的实例区分开来,类似于它区分我的数据存储实例的方式?换句话说,我可以前往应用引擎Applications Overview,并以我在数据存储区中的方式查看属于我的应用的所有Blob吗?我想一个完整的工作代码可以帮助我看到这些答案。

我的问题的一部分可能是我从来没有使用过servlet。我目前正在为我的api使用Google Cloud Endpoint。

+1

想知道您是否在该解决方案上有任何工作代码? – 2014-04-10 19:05:13

回答

1

您对过程的描述是正确的。您错过的唯一步骤是第一步:服务器端调用blobstoreService.createUploadUrl(redirecturl)来生成要上传到的URL。然后,redirecturl中的处理程序会将blob密钥保存到数据存储区。

+0

该网址是永久设置还是动态?如果android应用程序需要每次需要保存一个blob或一次获取它然后将其存储在客户端并每次需要发送blob时都使用它,那么android应用程序需要调用它吗? – learner 2013-04-27 04:21:19

+0

它是动态的。该函数为每个blob创建一个新的url。我不确定端点是否有处理它的具体方式,但是Blobstore的一般情况是,每次您想要将某些内容上传到Blobstore时,都需要使用createUploadUrl()。 – dragonx 2013-04-27 04:27:55

+0

@dragonx当blobstore通过回调url调用服务器时,服务器如何知道该回调用于哪个用户? – 2013-04-27 05:20:03

3

其实有两种方式上传到Blob存储区:

使用direct upload handler

  • 服务器通过createUploadUrl(..)获得一个唯一的一次秘密上传网址和发送该URL到客户端。
  • 客户端使用multipart/form-data POST将数据上传到此URL。
  • 好处是你可以上传大文件(> 32mb)。

使用blobstore FileService API这是过时不应该使用更多的

  • 你创建你自己的POST上传处理程序,其中客户端上传数据。
  • 您使用FileService API将数据保存到blobstore。
  • 缺点是您可以上传最多32mb的数据(通用GAE请求限制)。
  • 好处是您可以访问数据,因此您可以根据需要编辑内容。
+0

感谢发布。 +1。这很有帮助。 – learner 2013-04-27 23:13:21