Discuz云附件插件基于discuz!X2.5(以下称DZ程序)的远程附件功能改造而来,并完全取代了DZ程序的远程附件FTP功能,适用于使用DZ程序的论坛希望使用阿里云开放存储服务(以下称OSS)存储论坛附件的网站。保留了DZ程序远程附件的所有功能,如略缩图,水印,附件权限等所有功能。并尽可能的少改动DZ原程序及其他功能。当前版本已经兼容最新的OSS域名、命名规则。
注:本插件基于DISCUZ!X2.5开发,仅适用于DZ2.5版本。
特色功能:
1、定时web服务器转发功能,因为OSS虽然容量大,速度快,但是其根据流量计费,如果您购买的是阿里云主机,可以在主机带宽有空余的时候,选择性的在某个时段(如凌晨时段)使用阿里云内部免费流量通过web服务器转发存储在OSS上论坛附件,可以充分利用带宽、降低费用,达到最高性价比。
2、便捷的本地附件与远程附件互转功能,论坛后台可以随时转换本地附件和OSS附件,您可以根据实际流量,通过合适的计算,选择性的将某些附件放在主机上还是放在OSS上可以充分利用带宽、降低费用,拥有最高性价比。系统还提供了不删源文件功能,可以作为备份系统将附件在本地和OSS上双备份。
3、签名防盗链功能,可以使用URL加签名的方式防止其他网站盗链,基本上可以排除论坛附件遭他人盗链的可能性。
文件说明:
test.php 测试文件,用完务必删除
oss.php 新增文件,DZ附件机制有些不统一处由它来处理
source-程序核心
|-oss oss的PHPsdk,下载阿里云官方的,完全没有修改
|-class
|-discuz 附带修改过的discuz_ftp.php文件
|-module
|-forum 附带修改过的forum_attachment.php,forum_image.php
|-portal 附带修改过的portal_attachment.php
|-admincp 新增admincp_ossdz.php
|-menu 新增menu_ossdz.php
|-language 新增lang_admincp_ossdz.php
安装方法:
将上述source文件夹里的三个文件备份后,把upload文件夹内所有文件直接覆盖论坛到论坛根目录,运行成功后,请删除test.php。
基于阿里云oss存储的云附件插件下载地址
http://www.zzhelps.com/thread-494-1-1.html
本插件仅改动了DZ程序的forum_attachment.php,forum_image.php,portal_attachment.php文件,请安装前备份该文件,如果发现任何问题,还原该文件即可,且不影响论坛正常运行,附件也无需转移。
开启OSS附件后台设置(图1):
1、开启远程附件
2、启用SSL链接,预留功能,即SSL加密传输。需要在SDK中手动开启。
3、FTP服务器地址,即OSS服务器地址,目前公网为:oss.aliyuncs.com。如果您网站使用阿里云主机,请填写内网地址:oss-internal.aliyuncs.com。
4、FTP服务器端口,即OSS服务器端口,目前设置为:80,如有特殊应用,请根据阿里云的规则自行设置。
5、FTP账号,即OSS_ACCESS_ID
6、FTP密码,即OSS_ACCESS_KEY
7、被动模式,web服务器转发开关,如果您使用的是阿里云主机可以选择使用,如果是其他主机,切勿打开。
8、远程附件目录,即BUCKET名称,设定后即不能修改,如必须修改,则需要人工转移文件。
9、远程访问URL,即“BUCKET”.oss.aliyuncs.com,如果你还开启了门户和空间相册,请填写oss.php?f= 否则门户或相册显示会有问题(DZ的BUG)。
10、超时时间,签名防盗链的有效期,建议设置为900秒以内,如果您的服务器与OSS服务器有时差,请根据时差做相应增减,否则会出错。
11、测试远程附件按钮,不可用。
12、允许的附件扩展名,允许上传到OSS的附件的扩展名。
13、禁止的附件扩展名,禁止上传到OSS的附件的扩展名。
14、附件尺寸下限,使用远程附件的最小文件,鉴于aliyun除了基于流量加上基于请求数的计费方式,建议特别小的文件保留在web服务器上。
15、隐藏远程附件真实路径,如果选择隐藏真实路径,允许bucket设定为私有读写,使用签名方式打开,更好的防盗链;如果选择否,则请将BUCKET设定为公共读,并且建议打开bucket的防盗链功能。