访问文件时,它仍在下载(Linux)


Access file while it's still being downloaded (Linux)

我正在尝试使用PHP存档一个大文件并将其发送到浏览器下载。问题是该文件位于远程机器上,获取它的唯一方法是通过HTTP。假设这是我的文件:https://dropboxcontent.com/user333/3yjdsgf/video1.mp4它是一个直接链接,我可以使用wget或curl下载文件。当用户想要下载它时,我首先将文件获取到服务器,然后将其压缩,然后将其发送给用户。如果文件非常大,用户必须坐在那里等待服务器下载它,然后才能在浏览器中看到下载对话框。是否有一种方法可以让我开始下载文件https://dropboxcontent.com/user333/3yjdsgf/video1.mp4(假设我将其下载到本地/tmp/video.mp4),同时开始放入存档并将其流式传输到用户的浏览器?

我使用这个库来压缩它:https://github.com/barracudanetworks/ArchiveStream-php,它工作得很好,但是瓶颈仍然是将文件获取到服务器的本地文件系统。

下面是我的代码:

$f = file_get_contents("https://dropboxcontent.com/user333/3yjdsgf/video1.mp4");$ zip -> add_file(大/hello.mp4, f)美元;

问题是$f = file_get_contents("https://dropboxcontent.com/user333/3yjdsgf/video1.mp4");行太长,如果文件真的很大

根据Touch Cat Digital Inc原始帖子的评论,我在这里找到了答案:https://stackoverflow.com/a/6914986/1927991

远程文件的块流是答案。非常聪明。