您可以使用Blobstore API在Google App Engine中创建上传网址,如下所示:
BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
String callbackUrl = "/imageApi/imageUploaded";
String uploadUrl = blobstoreService.createUploadUrl(callbackUrl,
UploadOptions.Builder.withGoogleStorageBucketName("myBucket"));
但是,我如何在App Engine中创建一个Java方法来处理上传?它是什么样的,我如何读取上传文件的对象名称,以及不是什么?
我正在查看docs中有关它的模糊内容,但实际上没有任何代码可以解释如何执行此操作。
注意:我使用的是云端点,但它应该类似。
答案 0 :(得分:1)
您需要创建一个映射到" / blob"的servlet。处理程序。像这样:
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Map<String, List<FileInfo>> files = blobstoreService.getFileInfos(request);
List<FileInfo> info = files.get("uploadFormElement");
for (FileInfo i : info) {
if (i != null) {
String objectName = i.getGsObjectName();
long size = i.getSize());
// if you want to return object name to the client:
resp.getWriter().print(objectName);
}
}
}