我需要上传一个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流出并以这种方式计算长度?我无法判断我是否遗漏了某些东西,或者服务器是否正在进行操作。