如何在 AppEngine 中为上传到 Google Cloud Storage with Blobstore API 的对象创建上传处理程序

How to make upload handler in AppEngine for object uploaded to Google Cloud Storage with Blobstore API

您可以使用 Blobstore API 在 Google App Engine 中创建上传 URL,如下所示:

BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
String callbackUrl = "/imageApi/imageUploaded";
String uploadUrl = blobstoreService.createUploadUrl(callbackUrl,
     UploadOptions.Builder.withGoogleStorageBucketName("myBucket"));

但是我该如何在 App Engine 中创建一个 Java 方法来处理上传?它看起来像什么,我如何读取上传文件的对象名称,什么不是?

我在 docs 中查看了关于它的简介,但实际上没有任何代码解释如何做到这一点。

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

您需要创建一个映射到您的“/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);
        }
    }
}