如何在AppEngine中为使用Blobstore API上传到Google云端存储的对象制作上传处理程序

时间:2016-04-07 03:17:25

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

您可以使用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中有关它的模糊内容,但实际上没有任何代码可以解释如何执行此操作。

注意:我使用的是云端点,但它应该类似。

1 个答案:

答案 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);
        }
    }
}