本扩展包基于https://github.com/qiniu/php-sdk开发,是七牛云储存 Laravel 5 Storage版,通过本扩展包可以在Laravel 5中集成七牛云存储功能。

1、安装配置

使用之前,先通过Composer安装:

composer require zgldh/qiniu-laravel-storage

然后在config/app.php中注册服务提供者:

zgldh\QiniuStorage\QiniuFilesystemServiceProvider::class,

接下来在config/filesystems.php里的disks中新增如下选项:

'disks' => [//... ,'qiniu' => ['driver' => 'qiniu','domains' => ['default' => 'xxxxx.com1.z0.glb.clouddn.com', //你的七牛域名'https' => 'dn-yourdomain.qbox.me',         //你的HTTPS域名'custom' => 'static.abc.com',                //Useless 没啥用,请直接使用上面的 default 项],'access_key' => '',  //AccessKey'secret_key' => '',  //SecretKey'bucket' => '',  //Bucket名字'notify_url' => '',  //持久化处理回调地址'access' => 'public',  //空间访问控制 public 或 private'hotlink_prevention_key' => 'afc89ff8bd2axxxxxxxxxxxxxxbb', // CDN 时间戳防盗链的 key。 设置为 null 则不启用本功能。//'hotlink_prevention_key' => 'cbab68a279xxxxxxxxxxab509a', // 同上,备用],//...
],

二、使用

第一种用法:

   $disk = \Storage::disk('qiniu');$disk->exists('file.jpg');                      //文件是否存在$disk->get('file.jpg');                         //获取文件内容$disk->put('file.jpg',$contents);               //上传文件$disk->put('file.jpg',fopen('path/to/big.jpg','r+')); //分段上传文件。建议大文件>10Mb使用。    $disk->prepend('file.log', 'Prepended Text');   //附加内容到文件开头$disk->append('file.log', 'Appended Text');     //附加内容到文件结尾$disk->delete('file.jpg');                      //删除文件$disk->delete(['file1.jpg', 'file2.jpg']);$disk->copy('old/file1.jpg', 'new/file1.jpg');  //复制文件到新的路径$disk->move('old/file1.jpg', 'new/file1.jpg');  //移动文件到新的路径$size = $disk->size('file1.jpg');               //取得文件大小$time = $disk->lastModified('file1.jpg');       //取得最近修改时间 (UNIX)$files = $disk->files($directory);              //取得目录下所有文件$files = $disk->allFiles($directory);               //这个没实现。。。$directories = $disk->directories($directory);      //这个也没实现。。。$directories = $disk->allDirectories($directory);   //这个也没实现。。。$disk->makeDirectory($directory);               //这个其实没有任何作用$disk->deleteDirectory($directory);             //删除目录,包括目录下所有子文件子目录$disk->url('a.png');                            //返回文件的URL$disk->url(['path' => 'a.png', 'domainType' => 'default']); //返回文件的URL$disk->getDriver()->uploadToken();              //获取上传Token$disk->getDriver()->uploadToken('file.jpg');    //获取上传Token$disk->getDriver()->withUploadToken($token);    // 使用自定义的 uploadToken 进行上传,$disk->put('file.jpg',$content);                // 则本次的 put 操作,将使用上述的 $token 进行上传。// 常用于自动触发持久化处理 https://github.com/qiniu/php-sdk/blob/master/examples/upload_and_pfop.php$disk->getDriver()->downloadUrl('file.jpg');                //获取下载地址$disk->getDriver()->downloadUrl('file.jpg')->setDownload('foo.jpg');                 //获取下载地址,文件名为 foo.jpg$disk->getDriver()->downloadUrl('file.jpg', 'https');       //获取HTTPS下载地址$disk->getDriver()->privateDownloadUrl('file.jpg');         //获取私有bucket下载地址$disk->getDriver()->privateDownloadUrl('file.jpg?attname=foo.jpg');         //获取私有bucket下载地址,文件名为 foo.jpg$disk->getDriver()->privateDownloadUrl('file.jpg', 'https');//获取私有bucket的HTTPS下载地址$disk->getDriver()->privateDownloadUrl('file.jpg',['domain'=>'https','expires'=>3600]);                     //获取私有bucket的HTTPS下载地址。超时 3600 秒。$disk->getDriver()->avInfo('file.mp3');                     //获取多媒体文件信息$disk->getDriver()->imageInfo('file.jpg');                  //获取图片信息$disk->getDriver()->imageExif('file.jpg');                  //获取图片EXIF信息$disk->getDriver()->imagePreviewUrl('file.jpg','imageView2/0/w/100/h/200');                         //获取图片预览URL$disk->getDriver()->privateImagePreviewUrl('file.jpg','imageView2/0/w/100/h/200');                  //获取私有bucket图片预览URL$disk->getDriver()->verifyCallback('application/x-www-form-urlencoded', $request->header('Authorization'), 'callback url', $request->getContent());//验证回调内容是否合法$disk->getDriver()->persistentFop('file.flv','avthumb/m3u8/segtime/40/vcodec/libx264/s/320x240');   //执行持久化数据处理$disk->getDriver()->persistentFop('file.flv','fop','队列名');   //使用私有队列执行持久化数据处理$disk->getDriver()->persistentStatus($persistent_fop_id);       //查看持久化数据处理的状态。$disk->getDriver()->fetch('http://abc.com/foo.jpg', 'bar.jpg'); //调用fetch将 foo.jpg 数据以 bar.jpg 的名字储存起来。$disk->getDriver()->qetag();        //得到最后一次执行 put, copy, append 等写入操作后,得到的hash值。详见 https://github.com/qiniu/qetag$disk->getDriver()->lastReturn();   //得到最后一次执行 put, copy, append 等写入操作后,得到的返回值。

第二种用法 (就是省略了一个getDriver)

   use zgldh\QiniuStorage\QiniuStorage;$disk = QiniuStorage::disk('qiniu');$disk->exists('file.jpg');                      //文件是否存在$disk->get('file.jpg');                         //获取文件内容$disk->put('file.jpg',$contents);               //上传文件$disk->put('file.jpg',fopen('path/to/big.jpg','r+')); //分段上传文件。建议大文件>10Mb使用。$disk->prepend('file.log', 'Prepended Text');   //附加内容到文件开头$disk->append('file.log', 'Appended Text');     //附加内容到文件结尾$disk->delete('file.jpg');                      //删除文件$disk->delete(['file1.jpg', 'file2.jpg']);$disk->copy('old/file1.jpg', 'new/file1.jpg');  //复制文件到新的路径$disk->move('old/file1.jpg', 'new/file1.jpg');  //移动文件到新的路径$size = $disk->size('file1.jpg');               //取得文件大小$time = $disk->lastModified('file1.jpg');       //取得最近修改时间 (UNIX)$files = $disk->files($directory);              //取得目录下所有文件$files = $disk->allFiles($directory);               //这个没实现。。。$directories = $disk->directories($directory);      //这个也没实现。。。$directories = $disk->allDirectories($directory);   //这个也没实现。。。$disk->makeDirectory($directory);               //这个其实没有任何作用$disk->deleteDirectory($directory);             //删除目录,包括目录下所有子文件子目录$disk->uploadToken();                           //获取上传Token$disk->uploadToken('file.jpg');                 //获取上传Token$disk->withUploadToken($token);                 // 使用自定义的 uploadToken 进行上传,$disk->put('file.jpg',$content);                // 则本次的 put 操作,将使用上述的 $token 进行上传。// 常用于自动触发持久化处理 https://github.com/qiniu/php-sdk/blob/master/examples/upload_and_pfop.php$disk->downloadUrl('file.jpg');                     //获取下载地址$disk->downloadUrl('file.jpg')->setDownload('foo.jpg');                      //获取下载地址,文件名为 foo.jpg$disk->downloadUrl('file.jpg', 'https');            //获取HTTPS下载地址$disk->privateDownloadUrl('file.jpg');              //获取私有bucket下载地址$disk->privateDownloadUrl('file.jpg?attname=foo.jpg');         //获取私有bucket下载地址,文件名为 foo.jpg$disk->privateDownloadUrl('file.jpg', 'https');     //获取私有bucket的HTTPS下载地址$disk->privateDownloadUrl('file.jpg',['domain'=>'https','expires'=>3600]);                         //获取私有bucket的HTTPS下载地址。超时 3600 秒。$disk->avInfo('file.mp3');                          //获取多媒体文件信息$disk->imageInfo('file.jpg');                       //获取图片信息$disk->imageExif('file.jpg');                       //获取图片EXIF信息$disk->imagePreviewUrl('file.jpg','imageView2/0/w/100/h/200');                          //获取图片预览URL$disk->privateImagePreviewUrl('file.jpg','imageView2/0/w/100/h/200');                   //获取私有bucket图片预览URL$disk->verifyCallback('application/x-www-form-urlencoded', $request->header('Authorization'), 'callback url', $request->getContent());//验证回调内容是否合法$disk->persistentFop('file.flv','avthumb/m3u8/segtime/40/vcodec/libx264/s/320x240');    //执行持久化数据处理$disk->persistentFop('file.flv','fop','队列名');    //使用私有队列执行持久化数据处理$disk->persistentStatus($persistent_fop_id);        //查看持久化数据处理的状态。$disk->fetch('http://abc.com/foo.jpg', 'bar.jpg'); //调用fetch将 foo.jpg 数据以 bar.jpg 的名字储存起来。$disk->qetag();     //得到最后一次执行 put, copy, append 等写入操作后,得到的hash值。详见 https://github.com/qiniu/qetag$disk->lastReturn();//得到最后一次执行 put, copy, append 等写入操作后,得到的返回值。

三、相关参考

本扩展包GitHub地址为https://github.com/zgldh/qiniu-laravel-storage,基于https://github.com/qiniu/php-sdk开发,更多详情请参考七牛官方PHP SDK使用指南:http://developer.qiniu.com/code/v7/sdk/php.html

转载于:https://www.cnblogs.com/jxl1996/p/10301277.html

在 Laravel 5 中集成七牛云存储实现云存储功能相关推荐

  1. Ueditor结合七牛云及百度云存储(JAVA版,ueditor-1.4.3)实现图片文件上传

    [前言] 之前研究了ueditor直接上传图片文件到七牛云以及百度云存储,见下面两篇文章: http://uikoo9.com/blog/detail/ueditor-for-bcs http://u ...

  2. Spring Boot——集成七牛云OSS对象存储SDK解决方案

    基本概念 七牛云OSS对象存储(Kodo):七牛云海量存储系统(Kodo)是自主研发的非结构化数据存储管理平台,支持中心和边缘存储. 平台经过多年大规模用户验证已跻身先进技术行列,并广泛应用于海量数据 ...

  3. 【微信小程序控制硬件⑥ 进阶篇】服务器如何集成七牛云存储SDK,把用户自定义设备图片存储在第三方服务器!

    本博文由热爱分享热爱技术的半颗心脏原创,非官方人员.非组织名义编写,博文如有不对或侵犯您的权益,请及时留言,第一时间纠正! [微信小程序控制硬件①] 全网首发,借助 emq 消息服务器带你如何搭建微信 ...

  4. SpringBoot2.x 集成 七牛云对象存储Kodo

    本文主要对SpringBoot2.x集成七牛云对象存储Kodo进行简单总结,其中SpringBoot使用的2.4.5版本. 一.七牛云对象存储Kodo简介 七牛云对象存储Kodo是七牛云提供的高可靠. ...

  5. 架构师小跟班:教你从零开始申请和配置七牛云免费OSS对象存储(不能再详细了)

    背景 之前为了练习Linux系统使用,在阿里云上低价买了一台服务器(网站首页有活动链接,传送门),心里想反正闲着也是闲着,就放了一个网站上去.现在随着数据越来越多,服务器空间越来越吃紧,我就考虑使用七 ...

  6. 架构师小跟班:教你从零开始申请和配置七牛云免费OSS对象存储(不能再详细了)...

    背景 之前为了练习Linux系统使用,在阿里云上低价买了一台服务器(网站首页有活动链接,传送门),心里想反正闲着也是闲着,就放了一个网站上去.现在随着数据越来越多,服务器空间越来越吃紧,我就考虑使用七 ...

  7. 七牛云和阿里云OSS存储图片服务器使用

    目录 1 图片存储方案 1.1 介绍 1.2 七牛云存储 1.2.1 注册.登录 1.2.2 新建存储空间 1.2.3 查看存储空间信息 1.2.4 开发者中心 1.2.5 鉴权 1.2.6 Java ...

  8. php系统接入七牛云直播服务,在旧有 PHP 系统上集成七牛云 PHP

    最近在一个古老的 PHP 系统上使用七牛云的上传图片功能,需要集成七牛云提供的 PHP-SDK,这个系统暂时不支持 composer,还好七牛云这个 SDK 不依赖其他的包,于是事情就变得简单了,只需 ...

  9. 第三方直播SDK对比(腾讯云,阿里云,网易云信,七牛云,金山云,声网,即构科技)

    前言:由于现在直播很火,新加入的公司打算做直播功能,之前没接触于是先去看了下主流第三方平台的SDK,想看下哪个平台的更好一些.本文没什么技术含量,仅仅是将相关官网的资料整理,做了一点对比,方便看到各平 ...

最新文章

  1. android调用系统设置
  2. Boost.Asio技术文档汇总
  3. BZOJ4161 常系数齐次线性递推
  4. 今天晴朗,但是由于晚上睡眠不是很好就头昏眼花
  5. web developer tips (37):如何组织Using指令
  6. 解决Windows10搜索框空白的问题
  7. java ReentrantLock 锁相关笔记
  8. php数据关系图,如何利用navicat查看数据表的ER关系图
  9. xgboost参数_XGBoost实战和参数详解
  10. MIX 2008与ASP.NET MVC框架的Road-Map
  11. 会议报到和撒离时间算会期_【NKMUN2021】城市会议新模式:让心动成为可能
  12. 交换机配置工具_二层网管交换机应用—环路检测
  13. matlab hrv,利用ECG信号进行HRV分析
  14. 小米9首次官方降价:2799元,依旧实力强劲
  15. 关于 QImage::Format_Mono
  16. 前端开发经验:当初我是如何学习JavaScript
  17. https://www.nowcoder.com/acm/contest/107/F
  18. 手动搭建最基础的 Retrofit + OkHttp + RxJava
  19. Bad client credentials
  20. 要和文心一言来一把你画我猜吗?

热门文章

  1. java 相同字符不连续_Java中字符串中连续相同字符去重方法
  2. 信息安全——对称算法与非对称算法
  3. Linux cat 命令用法
  4. 年轻人,AI不想给你加薪升职
  5. 马克龙宣布15亿欧元投资AI,DeepMind拥吻巴黎
  6. “你的深度学习框架包含15个漏洞”,360说 | 附论文
  7. Linux awk用法
  8. 【Android Camera】之 Preview
  9. 2013页面验证框架来袭。基于独创的vvc思想。还不知道的童鞋赶快围观吧!
  10. 用Windows Live Writer客户端写51CTO博客