感谢您抽出时间来研究这篇文章。
基本我想实现一个文件下载缓存服务器供本地使用。
服务器应满足以下要求: 1,将目标文件/数据保存到本地服务器的磁盘中。 2,转发数据流。 3,支持可恢复数据缓存。 4,支持使用Range标题进行部分下载。
方案A(目标文件缓存在本地服务器的磁盘中): 对于这种情况,我可以从本地缓存服务器下载目标数据。服务器只需使用一个readStream管道服务数据。
方案B(目标文件不在本地服务器的磁盘中):
为此,我可以将源管道传输到多目标目的地,
喜欢:
var req = request.get('target data', function(err, response, body) {
if (err) {...}
});
req.pipe(targetStream1);
req.pipe(res);
方案C(由于网络异常,目标文件部分缓存在本地服务器的磁盘中):
因此,当有人尝试使用部分缓存来获取目标数据时,服务器应该做两件事。
1,快速响应一个流的缓存数据。
2,在下载时转发剩余的块。
有什么建议吗?非常感谢大家。