我正在使用 PHP Flysystem 包从我的 Amazon S3 存储桶中流式传输内容。特别地,我正在使用 $filesystem->readStream
。
我的问题
当我流式传输一个文件时,它最终变成了名为 myzip.zip.cpgz 的文件,大小是正确的。这是我的原型:
header('Pragma: no-cache');
header('Content-Description: File Download');
header('Content-disposition: attachment; filename="myZip.zip"');
header('Content-Type: application/octet-stream');
header('Content-Transfer-Encoding: binary');
$s3 = Storage::disk('s3'); // Laravel Syntax
echo $s3->readStream('directory/file.jpg');
我做错了什么?
附加问题
当我像这样流式传输文件时,它会:
- 完全下载到我的服务器RAM中,然后传输到客户端,还是
- 它会以块的形式保存在缓冲区中,然后传输到客户端?
基本上,如果我有数十GB的数据被流式传输,我的服务器是否会负担过重?
uri
,如下所示:$zipPath
和$jpgPath
。 - bradynpoulsen