0

我正在使用 amazon s3 API 并将客户端设置为流式读取。使用 file_get_contents("s3://{bucket}/{key}") 对我来说工作正常,它读取文件的完整数据(我在本地系统上使用视频文件和测试)。但是,我正在尝试优化脚本使用的内存,从而尝试按块读取和返回数据,如下所示:

$stream = @fopen("s3://{bucket}/{key}", 'r');
$buffer = 1024;
while(!feof($stream)) {
            echo  @fread($stream, $buffer);
            flush();
        }

这不适用于我的本地系统。我只是想知道使用这种技术可能会出现什么问题。通过搜索,我发现这也是一个非常广泛使用的技术。因此,如果有人可以就此处可能出现的问题或任何其他方法提出任何建议,我应该尝试一下,这将非常有帮助。谢谢。

4

1 回答 1

0

好的,终于找到解决方案了。不知何故,一些其他输出被添加到缓冲区。我不得不说:

ob_get_clean();
header('Content-Type: video/quicktime');

以这种方式清洁任何添加的东西。现在它工作正常。

感谢 Mark Ba​​ker 在调试过程中提供的宝贵支持。

于 2013-11-10T20:33:15.507 回答