天天看点

thinkphp集成系列之阿里云oss

web2.0时代;除了纯信息展示类的网站;基本都是有文件上传功能的;

最不济你得让用户换个头像吧;但是随着业务的发展;

如果上传的文件都和网站程序源代码放在一起;那是有相当多的弊端的;

1:静态文件会占用大量带宽;

2:服务器的成本略高;

常规的做法是把php源代码放到一台服务器上;图片等静态文件放在另一台服务器上;

当一个神奇的“云”时代的到来后;一切就变的更加简单了;

在业务还比较小的时候;我们无需大费周折的去搞一台静态文件服务器;直接使用第三方的即可;

好了;洛里啰嗦了半天;下面请出本篇博客的主角:阿里云oss;

我就不再安利oss的优势了;还没了解过的先跟着这个链接走:https://www.aliyun.com/product/oss/

一:准备工作

1:申请key和secret

2:创建Bucket

需要注意的是要把读写权限改为: 公共读;

根据服务器的位置获取外网endpoint;https://help.aliyun.com/document_detail/31834.html

ok;凑齐了这些配置项;下面可以召唤神龙了;

二:填写配置项

依然是以项目示例:http://git.oschina.net/shuaibai123/thinkphp-bjyadmin

/Application/Common/Conf/config.php

三:实例化并上传

/Application/Common/Common/function.php

ok现在首先使用框架的Upload上传类上传文件到服务器;获得文件路径;

调用oss_upload()函数;传入获得的文件路径;即可把文件上传到oss;

四:便捷方式

看第三步;我们可以发现;每上传一个文件就要调用oss_upload()函数;

那可不可以上传文件以后自动就上传到oss呢?

当然可以了;但是我们要对框架的Upload做点手术;

在 /ThinkPHP/Library/Think/Upload.class.php  的第229行添加如下代码;

然后在配置项中设置哪些目录的文件自动上传到oss;

如果只有个别目不上传、或者是所有目录都上传的;直接改配置项和Upload即可;

四:获取文件链接

图片之类的静态文件是上传到oss了;那链接怎么获取呢?

调用上面这个get_url()函数;传入第三步获取到的文件路径;即可得到oss的文件链接;

到此;从创建、上传、获取文件链接;整个流程就结束了;

如果要整合到自己有的项目中;

那只需要把/ThinkPHP/Library/Vendor/Alioss文件夹拷贝到自己项目同目录下;

把上面哪些配置项和函数拿过去就可以直接用;

本文为白俊遥原创文章,转载无需和我联系,但请注明来自白俊遥博客http://baijunyao.com