Laravel 使用阿里云OSS S3 协议文件上传

1. 安装 S3 软件包

复制代码
composer require league/flysystem-aws-s3-v3 "^3.0" --with-all-dependencies

2. 配置.env

以阿里云 OSS 地域华东2 上海为例:

php 复制代码
FILESYSTEM_DISK=s3                                                      //设置默认上传到S3

AWS_ACCESS_KEY_ID=****************************                // 阿里云 AccessKey ID
AWS_SECRET_ACCESS_KEY=********************************   // 阿里云 AccessKey Secret
AWS_DEFAULT_REGION=cn-shanghai                              //区域
AWS_BUCKET=file-upload-s3                                         //存储空间名称
AWS_ENDPOINT=https://oss-cn-shanghai.aliyuncs.com  //阿里云 OSS 端点
AWS_USE_PATH_STYLE_ENDPOINT=false                        //阿里云使用虚拟主机模式(必须设为 false)
AWS_URL=                                                                   // 可选:自定义访问域名(如 CDN 域名)

3. 创建上传文件的控制器

复制代码
php artisan make:controller UploadController

4. 文件上传控制器的内容

php 复制代码
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UploadController extends Controller
{
    public function avatar(Request $request)
    {
        //返回阿里云相对文件路径
        $path = $request->file('avatar')->store('avatars');

        return [
          'message' => '上传成功',
          'code' => 200,
          'data' => ['url' => $path],
          'success' => true,
        ];
    }
}

5. 添加上传路由代码

php 复制代码
//上传用户头像
Route::post('/upload/avatar', [UploadController::class, 'avatar']);

6. 使用apifox测试

7. 登录阿里云后台OSS确认

相关推荐
阿里云云原生5 分钟前
阿里云可观测 2025 年 8 月产品动态
阿里云·云计算
Clownseven6 分钟前
阿里云ECS快照教程:如何设置自动备份与一键恢复数据
阿里云·云计算
爱敲代码的TOM14 分钟前
阿里云监控使用
阿里云·云计算
Q_Q19632884751 小时前
python+springboot大学生心理测评与分析系统 心理问卷测试 自动评分分析 可视化反馈系统
开发语言·spring boot·python·django·flask·node.js·php
互联网动态分析1 小时前
PHP:从入门到实战的全面指南
php
gou123412343 小时前
Go语言io.Copy深度解析:高效数据复制的终极指南
开发语言·golang·php
Bruce1234 小时前
web专题之php代审(一)
php
RTC老炮5 小时前
webrtc弱网-AlrDetector类源码分析与算法原理
服务器·网络·算法·php·webrtc
Clownseven6 小时前
阿里云OSS vs 腾讯云COS vs AWS S3:对象存储价格与性能深度对比
阿里云·腾讯云·aws
wheeldown7 小时前
【Linux】面试常考!Linux 进程核心考点:写时拷贝优化原理 + 进程等待实战,一篇理清进程一生
linux·运维·服务器·面试·php