laragon中配置laravel使用aws s3需安装league/flysystem-aws-s3-v3驱动,正确设置.env中aws_access_key_id、secret、region、bucket及url,并执行config:clear与cache:clear;windows下注意磁盘名小写、路径分隔符及bucket策略权限。

在 Laragon 环境中让 Laravel 使用 AWS S3 存储,核心不是 Laragon 特有逻辑,而是标准 Laravel 文件系统配置 + 正确的 S3 凭据与驱动适配。Laragon 仅提供本地 PHP/MySQL/Nginx 运行环境,不影响 S3 集成,但需注意 Windows 系统下路径、缓存和权限的细节。
基础依赖与驱动安装
确保项目已安装官方 S3 兼容驱动:
- 运行
composer require league/flysystem-aws-s3-v3 "^3.0"(Laravel 9+ 推荐)或aws/aws-sdk-php(旧版兼容) - 检查
config/filesystems.php中's3'磁盘是否已定义,且driver值为's3' - Laragon 默认启用 OpenSSL 和 cURL,无需额外开启 —— 但若上传报
cURL error 60,需在php.ini中取消注释curl.cainfo并指向 Laragon 内置证书路径(如c:\laragon\etc\ssl\cacert.pem)
.env 与配置文件关键项
Laragon 下无特殊变量,照常使用 .env,但务必确认以下字段完整且无空格:
AWS_ACCESS_KEY_ID=AKIA...AWS_SECRET_ACCESS_KEY=your_secret_key-
AWS_DEFAULT_REGION=us-east-1(必须填 AWS 官方命名,不能简写) -
AWS_BUCKET=your-bucket-name(名称需与 S3 控制台完全一致,含连字符) -
AWS_URL=https://your-bucket-name.s3.us-east-1.amazonaws.com(用于生成直链 URL,协议不可省略) -
FILESYSTEM_DISK=s3(可选,设为默认磁盘;开发时建议留空,用代码动态指定更安全)
Windows 环境特别处理点
Laragon 运行在 Windows,S3 配置易因大小写、路径分隔符或缓存失效出错:
- 磁盘名大小写敏感:
Storage::disk('S3')会失败,必须用小写's3' - 执行
php artisan config:clear && php artisan cache:clear后再测试,Laragon 的 OPcache 有时不自动刷新 .env 变更 - 若用
store()上传后访问 URL 返回 403,请立即补两步:
①Storage::disk('s3')->setVisibility($path, 'public')
② 登录 AWS 控制台 → S3 → Bucket → Permissions → Bucket Policy,添加允许public-read的策略(或启用 ACL)
验证是否连通的最小测试代码
在路由或 Tinker 中快速验证:
$exists = Storage::disk('s3')->exists('test.txt');
Storage::disk('s3')->put('test.txt', 'hello from Laragon');
dd(Storage::disk('s3')->url('test.txt'));
成功返回带 https:// 的可访问链接,即表示配置就绪。失败则优先查 config:clear、凭证拼写、Bucket 区域是否匹配。











