# think-filesystem **Repository Path**: sunjinglong/think-filesystem ## Basic Information - **Project Name**: think-filesystem - **Description**: thinkphp8.x 的文件系统扩展包,支持上传阿里云OSS和七牛和腾讯云COS和华为云OBS和awsS3 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: v3 - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-15 - **Last Updated**: 2025-06-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### > 📣 本仓库克隆自github的yuanzhihai/think-filesystem 原作者长时间未更新, 本仓库现已将项目升级为兼容tp8可用,并提供长久更新支持 #### 🔛 使用方式 ```shell composer require sunjinglong/think-filesystem ``` #### 🆕 主要更新 1. 兼容tp8 https://github.com/yuanzhihai/think-filesystem/pull/13#issue-2307486986 2. getDiskConfig返回类型更改为mixed https://github.com/yuanzhihai/think-filesystem/pull/14#issue-2309477603 #### 🫡 鸣谢: - github原仓库 https://github.com/yuanzhihai/think-filesystem - 原仓库PR提交者 https://github.com/hbh112233abc -------

👇 以下为原仓库内容文档

think-filesystem

thinkphp6.1 的文件系统扩展包,支持上传阿里云OSS和七牛和腾讯云COS和华为云OBS和awsS3

## 包含 1. php >= 8.0.2 2. thinkphp >=6.1.0 ## 支持 1. 阿里云 2. 七牛云 3. 腾讯云 4. 华为云 5. AwsS3 6. google 7. ftp 8. sftp ## 安装 第一步: ```shell $ composer require yzh52521/think-filesystem ``` 第二步: 在config/filesystem.php中添加配置 ``` 'aliyun' => [ 'type' => 'aliyun', 'access_id' => '******', 'access_secret' => '******', 'bucket' => 'bucket', 'endpoint' => 'oss-cn-hongkong.aliyuncs.com', 'url' => 'http://oss-cn-hongkong.aliyuncs.com', ], 'qiniu' => [ 'type' => 'qiniu', 'accessKey' => '******', 'secretKey' => '******', 'bucket' => 'bucket', 'domain' => '', ], 'qcloud' => [ 'type' => 'qcloud', 'region' => '***', //bucket 所属区域 英文 'app_id' => '***', // 域名中数字部分 'secret_id' => '***', 'secret_key' => '***', 'bucket' => '***', 'timeout' => 60, 'connect_timeout' => 60, 'cdn' => '您的 CDN 域名', 'scheme' => 'https', 'read_from_cdn' => false, ] 'obs'=>[ 'type' => 'obs', 'key' => 'OBS_ACCESS_ID', 'secret' => 'OBS_ACCESS_KEY', //Huawei OBS AccessKeySecret 'bucket' => 'OBS_BUCKET', //OBS bucket name 'endpoint' => 'OBS_ENDPOINT', 'cdn_domain' => 'OBS_CDN_DOMAIN', 'ssl_verify' => 'OBS_SSL_VERIFY', //true or false... 'debug' => 'APP_DEBUG',//true or false... ], 's3'=>[ 'type' => 's3', 'credentials' => [ 'key' => 'S3_KEY', 'secret' => 'S3_SECRET', ], 'region' => 'S3_REGION', 'version' => 'latest', 'bucket_endpoint' => false, 'use_path_style_endpoint' => false, 'endpoint' => 'S3_ENDPOINT', 'bucket_name' => 'S3_BUCKET', ], 'google'=>[ 'type' =>'google', 'projectId' => 'GOOGLE_PROJECT_ID',//your-project-id 'bucket' => 'GOOGLE_BUCKET', //your-bucket-name 'prefix' => '',//optional-prefix ], 'ftp'=[ 'type' =>'ftp', 'host' => 'example.com', 'username' => 'username', 'password' => 'password', // 可选的 FTP 设置 // 'port' => 21, // 'root' => '', // 'passive' => true, // 'ssl' => true, // 'timeout' => 30, 'url'=>'' ], 'sftp'=>[ 'type'=> 'sftp', 'host' => 'example.com', // 基于基础的身份验证设置... 'username' => 'username', 'password' => 'password', // 使用加密密码进行基于 SSH 密钥的身份验证的设置... 'privateKey' => 'path/to/or/contents/of/privatekey', 'passphrase' => 'passphrase-for-privateKey', // 可选的 SFTP 设置 'port' => 22, 'root' => '/path/to/root', 'url' => '/path/to/root', 'timeout' => 10 ] ``` 第三步: 开始使用。 请参考thinkphp文档 文档地址:[https://www.kancloud.cn/manual/thinkphp6_0/1037639 ](https://www.kancloud.cn/manual/thinkphp6_0/1037639 ) ### demo ```php $file = $this->request->file( 'image' ); try { validate( ['image' => [ // 限制文件大小(单位b),这里限制为4M 'fileSize' => 10 * 1024 * 1000, // 限制文件后缀,多个后缀以英文逗号分割 'fileExt' => 'gif,jpg,png,jpeg' ] ])->check( ['image' => $file] ); $path = \yzh52521\filesystem\facade\Filesystem::disk( 'public' )->putFile( 'test',$file); $url = \yzh52521\filesystem\facade\Filesystem::disk( 'public' )->url( $path ); return json( ['path' => $path,'url' => $url] ); } catch ( \think\exception\ValidateException $e ) { echo $e->getMessage(); } ``` ## 授权 MIT ## 感谢 1. thinkphp 3. overtrue/flysystem-qiniu 4. league/flysystem 5. overtrue/flysystem-cos