我想知道我是否能得到一些帮助。
我在我的项目中使用Flysystem包。
目前,我正在使用以下代码将文件上传到S3
$awss3 = new Flysystem(new AwsS3Adapter($client_details, 'bucket-name'));
$stream = fopen(public_path() . '/upload/' . $filename . '.gz', 'r+');
$awss3->writeStream($filename . '.gz', $stream);
这很有效。
但我无法弄清楚如何反向运行它并下载文件。
非常感谢任何帮助。
干杯,
答案 0 :(得分:0)
您可以使用flysystem readStream函数
$stream = $filesystem->readStream('something/is/here.ext');
然后您可以使用写入流直接写入磁盘
$filesystem->writeStream('backups/'.strftime('%G-%m-%d').'.backup', $stream)
或者您可以使用以下代码段直接下载文件
//Get File Extension
$file_extension = ;
//Get File Size
$file_size = ;
// Set the headers, prevent caching.
header("Pragma: public");
header("Expires: -1");
header("Cache-Control: public, must-revalidate, post-check=0, pre-check=0");
header("Content-Transfer-Encoding: binary");
header("Content-Type:application/" . $file_extension);
header('Content-Disposition: attachment; filename="' . $file_name . '"');
header ("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header('Content-Length: ' . $file_size);
header('Accept-Ranges: bytes');
fpassthru($stream);