我很难找到关于 AppEngine 的一个非常基本的问题的文档:
BlobStore 是否支持上传的分块传输编码?
我在 Java 中使用带有 setChunkedStreamingMode 的 HttpURLConnection 对象,使用以下代码在 multipart/form-data 类型请求中上传文件来设置连接:
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();
开发服务器以状态 411 回答我的请求:需要长度。这是否意味着不支持分块传输模式,或者我是否错误地初始化了连接?生产服务器在这里的行为是否不同?这种行为是在生成上传 url 时指定最大上传大小的结果吗?
编辑:
如果我简单地注释掉该行cxn.setChunkedStreamingMode(9999);
,一切正常,但我宁愿不这样做,所以我不必在发送请求之前缓冲数百 MB 的内存......