在app引擎中上传图像和使用getServingUrl()的正确流程是什么?

时间:2015-05-26 02:54:06

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

我有一个Android应用程序想要在即时消息客户端中包含图像发送。我在使用blobstore或谷歌云存储的方式上非常困惑。有人可以从后端的角度概述实现这一目标的步骤吗?我的目标是最终使用getServingUrl并为应用程序提供外部URL以命中并获取图像。我正在使用java和谷歌云终端。

到目前为止,我有: 1. createUploadUrl 2.user blogstore service .getUploads()获取BlobKeys 3.找到我的特定blob键(我认为是ID,blobs.get(ID)) 魔术 5.弄清楚如何在特定blob上使用.getServingUrl(options) 6.后端工作。

请在您的回复中包含代码或伪代码,因为我已经为此工作了好几天而且已经筋疲力尽了。我真的可以使用某人来ELI5。

1 个答案:

答案 0 :(得分:1)

我认为令人困惑的事情是尝试将它与云端点一起使用,这不是你应该做的。使用纯Servlet(或Servlet上的抽象,可以访问HttpServletRequest)。 使用BlobstoreService.getUpload(HttpServletRequest)获取BlobKey:

public void doGet(HttpServletRequest request, HttpServletResponse response) {
  BlobKey blobKey = blobstoreService.getUploads(request).get("file").get(0); // assume the form parameter was "file" and only one file was uploaded
}

并使用ImagesService.getServingUrl(在“选项”构建器中设置BlobKey)来获取URL。

String url = imagesService.getServingUrl(ServingUrlOptions.Builder.withBlobKey(blobKey));

您可能希望将BlobKey(带有getKeyString)序列化到数据存储区以供将来访问。