使用 Laravel Flysystem 上传图片到阿里云 OSS 需安装 overtrue/flysystem-oss 适配器、在 filesystems.php 中正确配置 oss 磁盘(含 endpoint、bucket 等参数)、上传时设置 visibility=public 并推荐使用 putFile() 方法。
直接用 Laravel 的 Flysystem 驱动就能上传图片到阿里云 OSS,不需要手写 HTTP 请求或调用 SDK —— 关键是装对包、配对驱动、选对磁盘名。
确认已安装 oss:// 官方 Flysystem 适配器
Laravel 本身不内置 OSS 支持,必须通过 overtrue/flysystem-oss 提供的适配器。Laravel 9+ 默认使用 Flysystem 3.x,要对应装兼容版本:
-
composer require "overtrue/flysystem-oss:^4.0"(适配 Flysystem 3.x) - 如果项目还在用 Flysystem 2.x(如 Laravel 8),则装
^3.0 - 装错版本会导致
Class not found: Overtrue\Flysystem\OssAdapter或ArgumentCountError构造函数参数不匹配
在 config/filesystems.php 中注册 OSS 磁盘
别只改 .env,OSS 驱动必须显式声明为 oss 类型,并传入正确构造参数: