我使用现有材料(使用Node)动态创建了未知长度的ZIP归档文件,该文件已被压缩。在ZIP存档中,文件仅被存储;ZIP仅用于单个容器。这就是为什么缓存创建的ZIP文件没有任何意义-不涉及任何实际计算。
到目前为止,还可以。现在,我想允许恢复下载,并且正在阅读有关Accept-Range,Range和Content-Range HTTP标头的信息。下载中断的客户会要求开放范围,例如:Range: bytes=8000000-。
我该如何回答?根据RFC 2616§14.16,我的答案必须包含一个Content-Range标头,并且在其中:
与byte-ranges-specifier值不同(请参见14.35.1),byte-range-resp-spec必须仅指定一个范围,并且必须包含该范围的第一个字节和最后一个字节的绝对字节位置。
因此,我不能只发送“从位置X开始的所有内容”,我还必须指定发送的最后一个字节-通过仅发送一部分已知大小,或通过预先计算长度。这两种想法都不适合我的情况。还有其他可能性吗?