如何在 Laravel 中使用阿里云 OSS
本文已经过时,请阅读:https://lvwenhan.com/php/425.html
阿里云提供了基于命名空间的 V2 版 SDK,但是文档不是很完整,使用门槛比较高,于是我封装了一个 Composer 包:https://github.com/johnlui/AliyunOSS
安装
将以下内容增加到 composer.json:
require: { "johnlui/aliyun-oss": "dev-master" }
然后运行 composer update
使用
use JohnLui\AliyunOSS\AliyunOSS; // 构建 OSSClient 对象 // 三个参数:服务器地址、阿里云提供的AccessKeyId、AccessKeySecret $oss = AliyunOSS::boot('http://oss-cn-qingdao.aliyuncs.com', $AccessKeyId, $AccessKeySecret); // 设置 Bucket $oss = $oss->setBucket($bucketName); // 上传一个文件(示例文件为 public 目录下的 robots.txt) // 两个参数:资源名称、文件路径 $oss->uploadFile('robots.txt', public_path('robots.txt')); // 从服务器获取这个资源的 URL 并打印 // 两个参数:资源名称、过期时间 echo $oss->getUrl('robots.txt', new DateTime("+1 day"));
就是这么简单,喜欢可以去 Github 上 Star 哦!
评论:
李金峰
2017-07-29 11:10
2017-07-29 11:10
老师,我的composer一直报错:undefined indexREQUEST_METHOD,请问该怎么解决,,,,还有,阿里的OSS 如何用SDK源码进行开发呢,说来惭愧,我都知道源码该放到哪个文件夹。。多谢老师
落墨
2016-01-13 17:12
2016-01-13 17:12
运行 composer update 的时候不成功提示 Warning:This development build of composer is over 60days old. It is recommended to update it by running "E:\php\composer.phar self-update" to get the latest version.
Loading composer repositories with package information .
这是什么原因呢
Loading composer repositories with package information .
这是什么原因呢
mr-zhangyuan
2015-11-16 22:44
2015-11-16 22:44
你好 请问你这代码里面的有效时间有什么用处呢。可不可以取消,因为我把图片上传到oss上后,我还需要从服务器获取它的url放在数据库的字段里,那么这里封装的函数可以修复改吗,
// 从服务器获取这个资源的 URL 并打印
// 两个参数:资源名称、过期时间
echo $oss->getUrl('robots.txt', new DateTime("+1 day"));
或者我直接把过期时间改为(+36500day)
也就是说这样有效期就可以有100年了对吗,但是总感觉怪怪的。因为我上传到阿里云后,以后还要用
// 从服务器获取这个资源的 URL 并打印
// 两个参数:资源名称、过期时间
echo $oss->getUrl('robots.txt', new DateTime("+1 day"));
或者我直接把过期时间改为(+36500day)
也就是说这样有效期就可以有100年了对吗,但是总感觉怪怪的。因为我上传到阿里云后,以后还要用
mr-zhangyuan
2015-11-16 23:04
2015-11-16 23:04
@JohnLui:http://maoliduosk.oss-cn-qingdao.aliyuncs.com/imag.jpg?OSSAccessKeyId=Ippi1Ifiky6s12mI&Signature=dOBGUhAwmFhMU1IUngkLkDlPztE%3D&Expires=1447732216
这是我用 echo $oss->getUrl(' ', new DateTime("+1 day")); 从我上传的oss里面获取的url,这个有时间限制吗 是不是一天后失效。 我刷新一下,Signature=dOBGUhAwmFhMU1IUngkLkDlPztE%3D&Expires=1447732216后面的参数就变了,但是用<imag src>显示图片都是完整一样的。
这是我用 echo $oss->getUrl(' ', new DateTime("+1 day")); 从我上传的oss里面获取的url,这个有时间限制吗 是不是一天后失效。 我刷新一下,Signature=dOBGUhAwmFhMU1IUngkLkDlPztE%3D&Expires=1447732216后面的参数就变了,但是用<imag src>显示图片都是完整一样的。
2020-09-30 23:18