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上传文件
注意事项
- 请确保已正确配置访问密钥和存储空间信息
- 建议将敏感信息存储在环境变量中
- 使用STS临时授权时,请配置token参数
- 对于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
其他信息
- 授权协议: MIT
- 更新时间: 2025-11-20