最近我在将文件上传到我的Java gae应用程序时遇到了两个问题。 我正在使用blobstore doc中描述的tecnique。
在服务器上的两个案例中都没有记录错误消息,blob被正确写入,但是从不调用successPath url(createUploadUrl的回调)。由于某些原因,似乎处理上传的GAE端点崩溃了。
我的客户端是一个js XMLHttpRequest,包含在GWT中:
public native void uploadWithXMLHttpRequest(UploadForm uploadForm) /*-{
var fd = new FormData();
var files = uploadForm.@mypackage.UploadForm::getFiles()();
for (var i = 0; i < files.length; i++) {
fd.append("uploadFile"+i, files[i]);
}
var xhr = new XMLHttpRequest();
//xhr.upload.addEventListeners... omitted
xhr.open("POST", uploadForm.@mypackage.UploadForm::getUploadUrl()());
xhr.send(fd);
}
有关可能原因和解决方案/解决方法的任何想法? THX。
答案 0 :(得分:1)
此问题正在由另一位遇到相同问题的用户打开的GAE票证中讨论:https://code.google.com/p/googleappengine/issues/detail?id=7619(顺便说一句,错误跟踪系统有一个&#34; start&#34;功能,允许您投票票证和接收通知)
答案 1 :(得分:0)
可能的原因:
1您上传大文件(&gt; 1MB)并将其全部写入。你应该把它写成portinal:1 write = 1MB。
2您的请求时间超过30秒 - 请使用后端。
答案 2 :(得分:0)
在这种情况下,当我们将上传信息写入您的数据存储区时,503是由错误引起的。在使用M / S数据存储区时,预计会不时出现瞬态错误。我建议您将应用转换为HRD,以尽量减少将上传信息写入数据存储区时出现错误的可能性。
400错误是由您的应用生成的在您的应用程序日志中。
答案 3 :(得分:0)
尝试使用Google云端存储,因为blob商店服务存在很多问题,因此Google正在尝试将用户从Blob迁移到GCS支持
我猜应用引擎blob商店中的图像分辨率不能超过8000,这是它造成的原因。