Java 使用Google端点保存blob
我有一个应用程序,允许用户在blobstore中保存Blob。我现在有一个这样做的模式,但我对一些更简单、更不扭曲的东西感兴趣。在上下文中,假设我的应用程序允许用户上传动物的图片,其中有一段描述动物正在做什么 呈现模式Java 使用Google端点保存blob,java,google-app-engine,google-cloud-datastore,google-cloud-endpoints,blobstore,Java,Google App Engine,Google Cloud Datastore,Google Cloud Endpoints,Blobstore,我有一个应用程序,允许用户在blobstore中保存Blob。我现在有一个这样做的模式,但我对一些更简单、更不扭曲的东西感兴趣。在上下文中,假设我的应用程序允许用户上传动物的图片,其中有一段描述动物正在做什么 呈现模式 用户调用my endpoint api将动物的段落和名称保存在实体动物中注意:动物实体实际上有4个字段(名称,段落,BlobKey,以及blobServingUrl字符串)。但是端点api只允许保存上面提到的两个 在appengine端的endpoint方法中,在保存name和段
段落
和名称
保存在实体动物
中注意:动物实体实际上有4个字段(名称
,段落
,BlobKey
,以及blobServingUrl
字符串)。但是端点api只允许保存上面提到的两个name
和段落
后,我进行以下调用以生成blob服务url,我的endpoint方法将其返回给调用者
@ApiMethod(name=“saveAnimalData”,httpMethod=httpMethod.POST)
公共字符串saveAnimalData(AnimalData请求)引发异常{
...
BlobstoreService BlobstoreService=BlobstoreServiceFactory.getBlobstoreService();
字符串url=blobstoreService.createUploadUrl(“/upload”);
返回url;
}DefaultHttpClient()
注意:blobstore在保存图像后,使用blob密钥和服务url调用我的应用程序引擎服务器public void doPost(HttpServletRequest req,HttpServletResponse res)抛出ServletException,IOException
。从servlet中,我将BlobKey
和blobServingUrl
放入关联动物的Animal
实体中。(我向blobstore传递了一些元数据,我将其用作标识相关动物实体的标记)段落
和名称
数据的同时,将图像字节发送到端点方法saveAnimalData
。然后在endpoint方法中,将图像发送到blobstore,然后将BlobKey
和BlobServicengUrl
保存在我的实体Animal
中
您的响应必须是java。谢谢。我在这里看到两个问题合二为一:
Animal
实体的Blob
属性。它将允许您绕过BlobStoreService
管道工程。见:
此解决方案仍然取决于云端点如何将多部分文件作为原始字节[]
处理
2009年,我们在GWT+googleappengine上遇到了同样的问题,那是在blobstore服务提供之前
GWT RPC和云端点接口有一些相似之处,对我们来说这是不可能的。我们必须创建一个普通的HTTP Servlet,并使用一个流式多部分文件解析器,因为Apache的HTTP Commons中的一个使用了文件系统。hey!我使用与您相同的流程,但我有一个问题。在我的成功路径servlet中,getUploads(req)方法返回一个空对象。。所以我没有任何blobket或blobServingUrl。你知道怎么了吗??谢谢