分块编码,流和内容长度

时间:2016-08-25 18:09:53

标签: node.js stream chunked-encoding content-length node-request

我需要上传一个gzip压缩文件。为了在我的字符串变得太大的情况下的性能,我决定使用流但是遇到了服务器的问题,需要 content-length 标头,由于gzipping是内联的,所以无法计算。然后我决定使用分块传输,但我不确定我是不是正确地执行此操作,或者服务器是否只是不接受流/块,因为它仍然返回有关需要 content-length 标头的错误

这里是代码的一部分:

const gzip = zlib.createGzip()
let stream = createStream(string) // I also use files hence the streaming
  .pipe(gzip) )
  .pipe(request.put(url, {
    headers: {
      'Transfer-Encoding': 'chunked',
      'x-ms-blob-type': 'blockblob'
    }
}))

回应:

Content-Length HTTP header is missing

我还在添加其他标题,例如:

'Content-Type': 'application/javascript'
'Content-Encoding': 'gzip'

我唯一的选择就是放弃流式传输或gzip流出并以这种方式计算长度?我无法判断我是否遗漏了某些东西,或者服务器是否正在进行操作。

0 个答案:

没有答案