6

以下转换是否适用于从 Java servlet 转换为 google app-engine 云端点?

public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException { … }

@ApiMethod(name = "save_blob_key", path = "save_blob_key" httpMethod = HttpMethod.POST)
public void saveBlobKey(HttpServletRequest req) throws IOException { … }

语境:

我正在尝试使用端点来处理 blobstore 回调。

参考:https ://developers.google.com/appengine/docs/java/blobstore/overview#Complete_Sample_App

问题:

这里最大的问题是以下两行似乎需要类HttpServletRequest,我不知道我是否可以将它传递给端点。

BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
Map<String, List<BlobKey>> blobs = blobstoreService.getUploads(req);

编辑:

我一直在尝试很多方法来解决这个问题。我最新的是将 blob servlet 与端点 api 结合起来。我仍然无法让代码工作。因此,任何提供解决方案或实际导致解决方案的信息人都会获得赏金。

4

1 回答 1

3

您目前不能使用 Endpoints 作为对 blobstore 的回调blobstoreService.createUploadUrl。请参阅此相关答案。有一个支持mediaUpload的开放功能请求,它可能会提供与您想要的类似的功能。随意加注星标以表示支持并获得自动更新。

我推荐的是两种可能的选择之一,具体取决于您尝试上传的数据量。

如果您要上传适合数据存储的少量 blob 数据,请在 Endpoints 实体类中使用ShortBlob(最多 500 字节)或Blob(最多 1 MB)类型。端点将在后端处理序列化,并期望通过客户端库(并发送回)base64 编码的字符串。这是一种非常简单、直接的方法。

如果您想提供大于 1 MB 的 Blob,请暂时使用Google Cloud Storage JSON API。此 API 使用与 Endpoints 相同的客户端库,因此您不必担心将另一个库与您的应用程序捆绑在一起。此页面包含使用 Java 客户端库将 Blob 插入 Google Cloud Storage 的示例。

于 2013-04-30T21:21:10.430 回答