在 Laravel 5 中集成七牛云存储实现云存储功能
本扩展包基于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 中集成七牛云存储实现云存储功能相关推荐
- Ueditor结合七牛云及百度云存储(JAVA版,ueditor-1.4.3)实现图片文件上传
[前言] 之前研究了ueditor直接上传图片文件到七牛云以及百度云存储,见下面两篇文章: http://uikoo9.com/blog/detail/ueditor-for-bcs http://u ...
- Spring Boot——集成七牛云OSS对象存储SDK解决方案
基本概念 七牛云OSS对象存储(Kodo):七牛云海量存储系统(Kodo)是自主研发的非结构化数据存储管理平台,支持中心和边缘存储. 平台经过多年大规模用户验证已跻身先进技术行列,并广泛应用于海量数据 ...
- 【微信小程序控制硬件⑥ 进阶篇】服务器如何集成七牛云存储SDK,把用户自定义设备图片存储在第三方服务器!
本博文由热爱分享热爱技术的半颗心脏原创,非官方人员.非组织名义编写,博文如有不对或侵犯您的权益,请及时留言,第一时间纠正! [微信小程序控制硬件①] 全网首发,借助 emq 消息服务器带你如何搭建微信 ...
- SpringBoot2.x 集成 七牛云对象存储Kodo
本文主要对SpringBoot2.x集成七牛云对象存储Kodo进行简单总结,其中SpringBoot使用的2.4.5版本. 一.七牛云对象存储Kodo简介 七牛云对象存储Kodo是七牛云提供的高可靠. ...
- 架构师小跟班:教你从零开始申请和配置七牛云免费OSS对象存储(不能再详细了)
背景 之前为了练习Linux系统使用,在阿里云上低价买了一台服务器(网站首页有活动链接,传送门),心里想反正闲着也是闲着,就放了一个网站上去.现在随着数据越来越多,服务器空间越来越吃紧,我就考虑使用七 ...
- 架构师小跟班:教你从零开始申请和配置七牛云免费OSS对象存储(不能再详细了)...
背景 之前为了练习Linux系统使用,在阿里云上低价买了一台服务器(网站首页有活动链接,传送门),心里想反正闲着也是闲着,就放了一个网站上去.现在随着数据越来越多,服务器空间越来越吃紧,我就考虑使用七 ...
- 七牛云和阿里云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 ...
- php系统接入七牛云直播服务,在旧有 PHP 系统上集成七牛云 PHP
最近在一个古老的 PHP 系统上使用七牛云的上传图片功能,需要集成七牛云提供的 PHP-SDK,这个系统暂时不支持 composer,还好七牛云这个 SDK 不依赖其他的包,于是事情就变得简单了,只需 ...
- 第三方直播SDK对比(腾讯云,阿里云,网易云信,七牛云,金山云,声网,即构科技)
前言:由于现在直播很火,新加入的公司打算做直播功能,之前没接触于是先去看了下主流第三方平台的SDK,想看下哪个平台的更好一些.本文没什么技术含量,仅仅是将相关官网的资料整理,做了一点对比,方便看到各平 ...
最新文章
- android调用系统设置
- Boost.Asio技术文档汇总
- BZOJ4161 常系数齐次线性递推
- 今天晴朗,但是由于晚上睡眠不是很好就头昏眼花
- web developer tips (37):如何组织Using指令
- 解决Windows10搜索框空白的问题
- java ReentrantLock 锁相关笔记
- php数据关系图,如何利用navicat查看数据表的ER关系图
- xgboost参数_XGBoost实战和参数详解
- MIX 2008与ASP.NET MVC框架的Road-Map
- 会议报到和撒离时间算会期_【NKMUN2021】城市会议新模式:让心动成为可能
- 交换机配置工具_二层网管交换机应用—环路检测
- matlab hrv,利用ECG信号进行HRV分析
- 小米9首次官方降价:2799元,依旧实力强劲
- 关于 QImage::Format_Mono
- 前端开发经验:当初我是如何学习JavaScript
- https://www.nowcoder.com/acm/contest/107/F
- 手动搭建最基础的 Retrofit + OkHttp + RxJava
- Bad client credentials
- 要和文心一言来一把你画我猜吗?