Yii2-file-system是 Flysystem基础上基于 Yii2 框架的实现的扩展。 任何存储,统一的函数调用
###扩展存储
- Qinu 七牛云存储
- 阿里云存储
- 又拍云存储 (未实现大文件流API[还是老牌存储...], 如果实现功能后.大文件操作会有资源要求)
- 百度云存储
- 新浪云存储
- php >= 5.4
- Flysystem
###使用Componser
安装 (以下2种方式)
-
命令行执行
composer require callmez/yii2-file-system
-
编辑
composer.json
"require": { ... "callmez/yii2-file-system": "*" },
-
编辑
config/main.php
'components' => [ 'fileSystem' => [ 'class' => 'callmez\file\system\Collection', 'fileSystems' => [ //根据需求可设置多个存储, 以下来使用例子 'local' => function() { return new \callmez\file\system\FileSystem( new \callmez\file\system\adapters\Local(\Yii::getAlias('@webroot\images')) ); }, 'qiniu' => function() { return new \callmez\file\system\FileSystem( new \callmez\file\system\adapters\Qiniu( '七牛空间的 bucket', '七牛空间的 access key', '七牛空间的 access secret', '七牛的空间域名,默认为 {bucket}.qiniu.com 选填' ) ); } ] ] ]
-
使用例子(推荐wrapper方式)
// 集合方式 $local = Yii::$app->fileSystem->get('local'); $local->write('test.txt', 'hello world'); echo $local->read('text.txt'); $qiniu = Yii::$app->fileSystem->get('qiniu'); $qiniu->write('test.txt', 'hello world'); echo $qiniu->read('text.txt'); // wrapper 方式 (推荐) //等同于Yii::$app->fileSystem->get('local')->write('test.txt', 'hello world'); Yii::$app->fileSystem->write('local://test.txt', 'hello world'); //等同于Yii::$app->fileSystem->get('qiniu')->write('test.txt', 'hello world'); Yii::$app->fileSystem->write('qiniu://test.txt', 'hello world');