discuz基于阿里云oss来做云附件转自站长帮-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

discuz基于阿里云oss来做云附件转自站长帮

站长帮 2013-02-24 20:55:02 14867


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的防盗链功能。


存储 网络安全 开发工具 对象存储 数据安全/隐私保护
分享到
取消 提交回答
全部回答(0)
+ 订阅

云安全开发者的大本营

推荐文章
相似问题