AppEngine BlobStore是否支持上传的分块传输编码(状态411:需要长度)?

Mar*_* A. 3 java upload google-app-engine chunked-encoding blobstore

关于AppEngine的一个非常基本的问题,我很难找到文档:

BlobStore是否支持Chunked Transfer Encoding上传?

我正在使用Java中的HttpURLConnection对象和setChunkedStreamingMode使用以下代码在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();
Run Code Online (Sandbox Code Playgroud)

开发服务器通过状态411:需要长度来回答我的请求.这是否意味着不支持分块传输模式,或者我是否错误地初始化连接?生产服务器在此处的行为是否不同?这种行为是在生成上传网址时指定最大上传大小的结果吗?

编辑:

如果我只是注释掉这一行cxn.setChunkedStreamingMode(9999);,一切都运行得很好,但我宁愿不这样做,所以在发送请求之前我不必在内存中缓冲数百MB ...

Mar*_* A. 5

以下是我对上述问题的测试结果:

  1. 开发服务器不会支持块传输编码的上传.
  2. 正如Stuart所说,生产服务器确实支持它.(唷)
  3. 我将报告任何依赖于指定上传大小限制,但我怀疑它是否重要.

不幸的是,我必须编写两个版本的代码,一个用于在开发服务器上进行测试,另一个用于在生产服务器上运行,但这绝对是一个可接受的方案.