承接 shawnl/aliyun-oss 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

shawnl/aliyun-oss

最新稳定版本:v2.0.3

Composer 安装命令:

composer require shawnl/aliyun-oss

包简介

阿里云OSS适配器,用于Laravel框架

README 文档

README

阿里云OSS存储Laravel适配器,实现Laravel的Filesystem和Cloud接口,支持Laravel 8.x、9.x、10.x和11.x版本。

安装

使用Composer安装此包:

composer require shawnl/aliyun-oss

配置

在Laravel的filesystems.php配置文件中配置

config/filesystems.php文件中的disks数组中添加以下配置:

'disks' => [
    // 其他磁盘配置...
    
    'aliyun-oss' => [
        'driver'     => 'aliyun-oss',
        'credentials' => [
            'key_id'     => env('ALIYUN_OSS_ACCESS_KEY_ID', ''),
            'secret_key' => env('ALIYUN_OSS_ACCESS_KEY_SECRET', ''),
        ],
        'endpoint'   => env('ALIYUN_OSS_ENDPOINT', 'oss-cn-hangzhou.aliyuncs.com'),
        'bucket'     => env('ALIYUN_OSS_BUCKET', ''),
        'ssl'        => env('ALIYUN_OSS_SSL', false),
        'proxy'      => env('ALIYUN_OSS_PROXY', null),
        'token'      => env('ALIYUN_OSS_TOKEN', null),
    ],
],

环境变量配置

为了更好的安全性,建议在.env文件中配置相关参数:

ALIYUN_OSS_ACCESS_KEY_ID=your-access-key-id
ALIYUN_OSS_ACCESS_KEY_SECRET=your-access-key-secret
ALIYUN_OSS_ENDPOINT=oss-cn-hangzhou.aliyuncs.com
ALIYUN_OSS_BUCKET=your-bucket-name
ALIYUN_OSS_SSL=false

使用示例

基本使用

使用Laravel的Storage门面操作文件:

use Illuminate\Support\Facades\Storage;

// 上传文件
Storage::disk('aliyun-oss')->put('test.txt', 'Hello, OSS!');

// 上传文件流
Storage::disk('aliyun-oss')->putFile('images', $request->file('avatar'));

// 上传并重命名文件
Storage::disk('aliyun-oss')->putFileAs('images', $request->file('avatar'), 'user.jpg');

// 读取文件内容
$content = Storage::disk('aliyun-oss')->get('test.txt');

// 检查文件是否存在
if (Storage::disk('aliyun-oss')->exists('test.txt')) {
    // 文件存在
}

// 获取文件URL
$url = Storage::disk('aliyun-oss')->url('test.txt');

// 获取临时URL(带过期时间)
$temporaryUrl = Storage::disk('aliyun-oss')->temporaryUrl(
    'test.txt',
    now()->addMinutes(30)
);

// 删除文件
Storage::disk('aliyun-oss')->delete('test.txt');

// 列出目录中的文件
$files = Storage::disk('aliyun-oss')->files('images');

// 列出目录及其子目录中的所有文件
$allFiles = Storage::disk('aliyun-oss')->allFiles('images');

设置为默认磁盘

config/filesystems.php中将OSS设置为默认磁盘:

'default' => env('FILESYSTEM_DISK', 'aliyun-oss'),

然后可以直接使用Storage门面,无需指定磁盘:

use Illuminate\Support\Facades\Storage;

Storage::put('test.txt', 'Hello, OSS!');
$url = Storage::url('test.txt');

功能特点

  • 完全实现Laravel的Filesystem和Cloud接口
  • 支持文件上传、下载、删除、复制、移动等操作
  • 支持生成临时访问URL
  • 支持获取文件信息(大小、MIME类型、修改时间等)
  • 支持目录操作(列出文件和目录)
  • 支持设置文件可见性
  • 支持从URL上传文件

注意事项

  1. 请确保已正确配置访问密钥和存储空间信息
  2. 建议将敏感信息存储在环境变量中
  3. 使用STS临时授权时,请配置token参数
  4. 对于ECS实例访问同区域OSS,可配置internal参数使用内网地址

兼容性

  • PHP 7.4+
  • Laravel 8.x、9.x、10.x、11.x
  • 阿里云OSS SDK PHP 2.6+

许可证

本项目采用MIT许可证。

统计信息

  • 总下载量: 2
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-11-20