我一直在从 Google 云端硬盘下载 zip 文件。这些文件包含 mp4 视频,我不想等待下载完成。 VLC 可以很好地播放不完整的文件,但下载的文件是 zip 文件,而不是 mp4 文件。wget
可能是直接将下载传输到过滤器的最简单方法,然后我可以使用funzip
并输出到文件,然后像流式传输视频一样播放它。但是我无法wget
从 Google Drive 下载,它只是不断返回ERROR 400
错误请求错误,同样的情况也发生在curl
,所以我不得不与 Chromium 解决。这样我就必须从不完整的文件中传输而不是下载。
有没有简单的方法可以使用当前正在下载的文件进行管道传输funzip
?
答案1
tail -n +0 -f /path/to/file | funzip ...
基本上,tail 监视文件长度的变化并保持流式传输任何附加字节。但是,它无法知道下载何时完成,因此可能需要在某个时候终止它,具体取决于您对流所做的操作。
当然,我们假设浏览器将尝试线性下载文件,并且不会写入任何元数据来指示文件仅部分下载(稍后将用实际文件字节覆盖)。实际上,浏览器中的下载器非常保守,因此可以预期这是可行的。