Laravel5 七牛存储组件(使用官方SDK)

Laravel5 七牛存储组件(使用官方SDK)
这个包是在七牛官方 PHP-SDK 的基础上再次做的封装,使其符合 Laravel 中操作文件的规范,因此可高度信赖。

声明

该 repo 是基于 https://github.com/zgldh/qiniu-laravel-storage 改的。
这个repo在原来的基础上,改了一些东西,使大家可以通过 composer 的方式正确的引入该组件和七牛组件。

注意

由于七牛并不支持所谓的目录,不存在树形结构,因为目录操作基本可以无视。

建议只是用来上传、更新资源就好了,不要做列表展示!

安装

composer require itbdw/laravel-storage-qiniu
config/app.php 里面的 providers 数组, 加上一行 itbdw\QiniuStorage\QiniuFilesystemServiceProvider
config/filesystem.php 里面的 disks数组加上:

'disks' => [

'qiniu' => [
'driver' => 'qiniu',
'domain' => 'xxxxx.com1.z0.glb.clouddn.com', //你的七牛域名
'access_key' => '', //AccessKey
'secret_key' => '', //SecretKey
'bucket' => '', //Bucket名字
],
],

使用方式和普通的没有区别,只要在一开始初始化disk的时候选上qiniu就好了

$disk = \Storage::disk('qiniu');
$disk->exists('file.jpg'); //文件是否存在
$disk->get('file.jpg');

。。。

7 个评论

Bell__orchid

Bell__orchid

请问,这个包和官方包相比较,是解决了Auth冲突的问题吗?
2015-06-03 22:43
IT不倒翁

IT不倒翁 回复 Bell__orchid

有 auth 冲突问题?有的话并没有处理。这个是依赖官方包的,封装了操作,然后可以用 laravel 统一的 storage 操作模式进行处理
2015-06-11 14:25
红枫醉

红枫醉 回复 Bell__orchid

冲突的话,重命名即可。
2016-09-15 02:27
撼树de蚍蜉

撼树de蚍蜉

这个具体存储的时候怎么处理的。我怎么一直存入不进去,文件生成了,但是无效的问价。
$a = $_FILES['files'];
var_dump($a);
$ext = $file->getClientOriginalExtension();
$filePath = $file->getRealPath();
$tmpName = $file->getFileName();
$new_name = str_random(10).'.'.$ext;
var_dump($filePath);
var_dump($tmpName);
$disk = Storage::disk('qiniu');

$disk->put($new_name, $a['tmp_name']);
2016-11-29 14:37
撼树de蚍蜉

撼树de蚍蜉

这种方式,还需要生成七牛的token吗。直接使用Storage中的put可以实现吗?
2016-11-29 14:39
撼树de蚍蜉

撼树de蚍蜉

我现在用的是 file_get_content.但是感觉好慢。这个这样处理可以吗?
$ext = $file->getClientOriginalExtension();
$filePath = $file->getRealPath();
$new_name = str_random(10).'.'.$ext;
var_dump($filePath);
$disk = Storage::disk('qiniu');
$content = file_get_contents($filePath);
$disk->put($new_name, $content);
2016-11-29 14:46
zgldh

zgldh 回复 撼树de蚍蜉

为何不试试 https://github.com/zgldh/qiniu-laravel-storage
$disk->put('file.jpg',fopen('path/to/big.jpg','r+')); 能满足大文件分段上传的需要。
2017-02-20 17:09

要回复文章请先登录注册