📅  最后修改于: 2023-12-03 15:32:34.387000             🧑  作者: Mango
如果你正在使用 Laravel 框架,同时也是使用亚马逊 S3 作为你的存储后端,那么你可能需要将存储在 S3 上的文件下载到本地。这篇文章将会给你介绍如何在 Laravel 中使用 Storage
Facade 下载文件。
首先,确认你已经配置好了 S3,可以在 config/filesystems.php
中找到相关的配置项。如果你还没有配置,可以查看 官方文档 进行配置。
如果你要下载的文件是公开的,那么你可以直接使用以下代码将文件下载到本地:
use Illuminate\Support\Facades\Storage;
Storage::disk('s3')->get('path/to/file.txt');
其中,path/to/file.txt
是存储在 S3 上需要下载的文件路径。执行这个代码,文件将被下载到你的 Laravel 项目的根目录
private
。这样,下面这段代码将会为你下载文件并自动为你签名身份验证。use Illuminate\Support\Facades\Storage;
$url = Storage::disk('s3')->temporaryUrl(
'path/to/file.txt', now()->addMinutes(5)
);
return redirect()->away($url);
这里使用了 temporaryUrl
方法,它将根据你的配置自动为你签名,生成一个临时 URL,有效期可以指定,默认为 5 分钟。重定向到这个 URL 将会下载文件。
这篇文章演示了如何在 Laravel 中使用 Storage
Facade 下载文件,可以适用于上传到 S3 后需要下载的场景。如果你需要进行更高级的操作,比如分片下载,请查看 官方文档。