如何将图像从 js 客户端保存到 blobstore?

how to save a image from js client to blobstore?

我想将浏览器中的图像保存到 google blobstore。 我已经尝试过的: 将我的 img 转换为 base64 字符串:

reader = new FileReader();
reader.readAsBinaryString(file);

调用我的端点函数将其发送到 google 应用引擎。

var request = gapi.client.helloworldendpoints.uploadImage({'imageData': __upload.imageData, 'fileName': __upload.fileName, 'mimeType': __upload.mimeType, 'size': __upload.size});
    request.execute(
            function (result) {
                console.log("Callback:");
                console.log(result);
            }
    );

我在 Java 中的端点如下所示:

 @ApiMethod(name = "uploadImage", path = "/uploadImage", httpMethod = "POST")
public ImageUploadRequest uploadImage(@Named("imageData") byte[] imageData, @Named("fileName") String fileName, @Named("mimeType") String mimeType, @Named("size") float size) { 

return new ImageUploadRequest(imageData, fileName, mimeType, size);
}

问题是,我的端点似乎无法处理我的 base64 传输。我总是收到 503 后端错误

通过应用引擎将数据从我的 js 客户端发送到 blobstore 的最佳方式是什么?

更新 主要问题已解决。我设法上传了 blob。

Java脚本

var request = gapi.client.helloworldendpoints.uploadImage({
    'imageData': __upload.imageData, 
    'fileName': __upload.fileName, 
    'mimeType': __upload.mimeType, 
    'size': __upload.size
});

Java端点

public ImageUploadRequest uploadImage(
    Request imageData, 
    @Named("fileName") String fileName, 
    @Named("mimeType") String mimeType, 
    @Named("size") float size
) { ... }

要求就是这样

public class Request {
      public Blob image;
}

我的下一个问题如下 我如何从 GAE 的 Java 端点向我的 UploadServlet 发送 MultipartRequest 以创建 blobkey 并将数据保存到 blobstorage,因为 Blobstorage 只接受发送到 servlet 的数据?