我很难找到有关AppEngine的基本问题的文档:
BlobStore是否支持上传的分块传输编码?
我在Java中使用HttpURLConnection对象,使用setChunkedStreamingMode以多部分/表单数据类型请求上传文件,使用以下代码设置连接:
HttpURLConnection cxn = (HttpURLConnection) new URL(uploadUrl).openConnection();
cxn.setRequestMethod("POST");
cxn.setChunkedStreamingMode(9999);
cxn.setRequestProperty("Content-Type", "multipart/form-data; boundary=-");
cxn.setDoOutput(true);
cxn.connect();
dev-server通过状态411:需要长度来回答我的请求。这是否意味着不支持分块传输模式,或者我是否错误地初始化连接?生产服务器在此处的行为是否不同?这种行为是在生成上传网址时指定最大上传大小的结果吗?
编辑:
如果我只是注释掉cxn.setChunkedStreamingMode(9999);
行,那么一切都很完美,但我宁愿不这样做,所以在发送请求之前我不必在内存中缓冲数百MB ...... / p>
答案 0 :(得分:5)
以下是我对上述问题的测试结果:
不幸的是,我必须编写两个版本的代码,一个用于在开发服务器上进行测试,另一个用于在生产服务器上运行,但这绝对是一种可接受的方案。