不清楚是我个人配置问题,还是历史原因,官方提供的阿里云oss接口已经无法使用。这里我修改了一下官方sdk,目前测试上传、删除接口无误。
- 核心源文件基于阿里云oss官方sdk :github地址:https://github.com/aliyun/aliyun-oss-php-sdk
- discuz框修改基于discuz官方团队开发的下面框架和扩展:
说明:要求环境> =php5.3
为毛要修改文件,达到支持扩展?
1、dz的上传机制问题,dz功能太多了,帖子有附件、图片,日志、相册、门户文章、群组发帖等等。
2、dz的插件嵌入点机制问题。dz的插件模式是嵌入点机制,也就是天生基因决定dz插件很难直接修改底层的核心类库。导致插件如果你要做oss的上传,那么插件如果是基于嵌入点机制,这么多上传的地方,插件要开发多少才支持????
3、图片缩略、水印机制等,这些dz内置通过图片操作库处理,而oss是其自带的图片处理机制。
本扩展解决办法:
dz官方开发的版本,只能通过扩展框架来支持:
方案一:具体方法你可以用dz官方提供的框架,基于oss的sdk1版本:
http://www.discuz.net/thread-3399569-1-1.html
方案二:由于官方框架似乎有很多地方已经不支持了,我这边自己根据官方框架修改了一种,基于阿里云最新版本oss的sdk2.*改的一种方案:
http://www.playzhan.com/p/1434 实际上原理: 首先附件还是经过dz上传到服务器的,但是由于修改了核心ftp上传类库,那么在上传经过图片缩略、水印处理后,会通过ftp核心类库上传到远程服务器。由于我们修改了核心ftp类库,因此这个图片会被上传到阿里的oss。酱紫可以完全支持所有图片的附件上传了。
下面是我做的一个全部增量包。适合discuz3.2-gbk版本,比较完美整合阿里云oss和discuz,目前测试上传、删除、显示都没有问题,直接覆盖到网址根目录即可。
原文地址:
http://www.playzhan.com/p/1434