在 Laravel 10 中集成阿里云 OSS 需三步:安装 aliyuncs/oss-sdk-php、配置 .env 中的 OSS 凭据与 Endpoint、在 filesystems.php 中注册 oss 磁盘;之后可通过 Storage::disk('oss') 上传与生成 URL。

在 Laravel 10 中将文件存储到阿里云 OSS 这类对象存储,核心是配置一个基于 oss 驱动的磁盘,并通过 Storage 门面统一调用。配置过程分三步:安装 SDK、设置环境变量、定义磁盘。
安装阿里云 OSS PHP SDK
在项目根目录执行:
composer require aliyuncs/oss-sdk-php
这是 Laravel 调用 OSS 的底层依赖,必须先安装,否则 oss 驱动无法识别。
配置 .env 环境变量
在 .env 文件中添加以下字段(替换为你自己的实际值):
OSS_ACCESS_KEY_ID=your_access_key_idOSS_ACCESS_KEY_SECRET=your_access_key_secret-
OSS_ENDPOINT=oss-cn-hangzhou.aliyuncs.com(选对应地域的外网 Endpoint) OSS_BUCKET=your-bucket-name-
OSS_CDN_DOMAIN=https://cdn.yourdomain.com(可选,用于生成带 CDN 的 URL)
注意:ENDPOINT 必须与 Bucket 所在地域一致;如使用 HTTPS 访问,OSS_CDN_DOMAIN 或 OSS_URL 建议以 https:// 开头。
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
注册 oss 磁盘到 filesystems.php
打开 config/filesystems.php,在 'disks' 数组中添加:
'oss' => [
'driver' => 'oss',
'access_key' => env('OSS_ACCESS_KEY_ID'),
'secret_key' => env('OSS_ACCESS_KEY_SECRET'),
'endpoint' => env('OSS_ENDPOINT'),
'bucket' => env('OSS_BUCKET'),
'cdn_domain' => env('OSS_CDN_DOMAIN'),
'ssl' => true,
'isCName' => !empty(env('OSS_CDN_DOMAIN')),
],
关键点说明:
-
isCName设为true时,Storage::url()会优先用cdn_domain生成链接;设为false则用endpoint拼接(如https://bucket.oss-cn-hangzhou.aliyuncs.com/path) -
ssl => true强制使用 HTTPS,符合现代安全要求 - 无需手动实例化
OssClient,Laravel 的 Flysystem OSS 适配器会自动处理
验证与基础使用
配置完成后,可在控制器中直接使用:
Storage::disk('oss')->put('avatars/user1.jpg', $fileContent);-
$url = Storage::disk('oss')->url('avatars/user1.jpg');(返回完整可访问 URL) - 上传表单需带
enctype="multipart/form-data",接收后可用$request->file('xxx')->store('path', 'oss')
不复杂但容易忽略:确保 OSS Bucket 的读写权限(如设置为“公共读”或配合 RAM 子账号最小权限策略),否则 put 或 url 可能静默失败或返回 403。

















