# aliyun-oss **Repository Path**: lsz_mo/aliyun-oss ## Basic Information - **Project Name**: aliyun-oss - **Description**: 阿里云oos上传,可以使用系统Store::put()方式上传 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-13 - **Last Updated**: 2025-12-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # shawnl/aliyun-oss 阿里云OSS存储Laravel适配器,实现Laravel的Filesystem和Cloud接口,支持Laravel 8.x、9.x、10.x和11.x版本。 ## 安装 使用Composer安装此包: ```bash composer require shawnl/aliyun-oss ``` ## 配置 在Laravel的filesystems.php配置文件中配置 在`config/filesystems.php`文件中的`disks`数组中添加以下配置: ```php '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门面操作文件: ```php 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设置为默认磁盘: ```php 'default' => env('FILESYSTEM_DISK', 'aliyun-oss'), ``` 然后可以直接使用Storage门面,无需指定磁盘: ```php 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许可证。