Discuz! 官方站

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 259602|回复: 85

DISCUZX2.5/3/3.1云存储通用接口1.1.0beta版本[8.22最新更新]

[复制链接]
发表于 2013-8-1 17:55:25 | 显示全部楼层 |阅读模式
本帖最后由 Luca. 于 2013-9-24 10:38 编辑

8.22
更新七牛云,20MB以内小附件测试通过


8.7

更新阿里云OSS,20MB以内小附件测试通过


云存储接口测试结果:
服务 图片附件 批量上传 删除操作 大附件
又拍云 图片大于2M时间歇性失败 同左同左 正常 未测
阿里云 对于10M左右大图上传正常 目前测试20M左右小附件,正常 正常 正常 未测
七牛云 对于10M左右大图上传正常 目前测试20M左右小附件,正常 正常 正常 未测


DiscuzX使用云存储原理:
我们通过改造ftp类,当附件上传到本地时再通过ftp类将附件上传到云存储上。

安装步骤:
1,到http://www.discuz.net/thread-3334048-1-1.html 下载最新框架并安装。
2,下载本附件,并上传到服务器。
3,到config_global.php添加配置信息:
  1. $_config['extend']['storage']['curstorage'] = 'aliyun';
  2. $_config['extend']['storage']['upyun']['bucket'] = 'dztest';
  3. $_config['extend']['storage']['upyun']['username'] = 'dzuser';
  4. $_config['extend']['storage']['upyun']['password'] = 'discuz';
  5. $_config['extend']['storage']['upyun']['attachurl'] = 'http://dztest.b0.upaiyun.com';

  6. $_config['extend']['storage']['aliyun']['access_id'] = '';
  7. $_config['extend']['storage']['aliyun']['access_key'] = '';
  8. $_config['extend']['storage']['aliyun']['access_host'] = NULL;
  9. $_config['extend']['storage']['aliyun']['bucket'] = 'discuzbucket';
  10. $_config['extend']['storage']['aliyun']['attachurl'] = 'http://discuzbucket.oss.aliyuncs.com';

  11. $_config['extend']['storage']['qiniu']['accesskey'] = '';
  12. $_config['extend']['storage']['qiniu']['secretkey'] = '';
  13. $_config['extend']['storage']['qiniu']['attachurl'] = 'http://discuztest.qiniudn.com';
  14. $_config['extend']['storage']['qiniu']['bucket'] = 'discuztest';
复制代码
目前支持这四个云接口,第一行表示目前使用的云接口,一旦确认,不可再改。然后选择补充完对应的配置信息。
4,到后台的全局——上传设置——远程附件,选择打开,下面的信息可以随便填,或者按照一个正确的FTP服务器来填写,当没执行步骤3时,整个过程将按照一个正常FTP设置来运行。
5,上传附件并测试。


附件:

使用注意事项:1,本项测试目前只针对20MB以内小附件,对于大附件请等待以后版本新增的大附件异步上传支持脚本。
2,本服务我们只测试了常规情景下的上传动作,对于其他很多部分暂未测试,欢迎大家试用,并把问题及时反馈给我们以便我们及时修正。
3,本版本暂不支持多组服务器多个云存储同时共存,在使用前确认后不可再改,以后的版本可能会新增多个云存储多个bucket共存并向下兼容。

疑问解答:为什么不改造class_upload类而改造class_ftp类?
这个问题在发布至今一直有人问起,现统一作答。
由于discuz是一个复杂的程序,很多信息还依赖本地支持。比如上传后需要获取附件类型大小,图片附件需要获取尺寸信息,exif,是否为动画等信息并存入数据库。同时上传后的缩略图预览,缩略图生成,数据调用,feed生成等还都依赖本地,这也就决定了目前直接改造upload类会涉及到太大的工作量,直接上传到云存储并不是最好的方法。当然各位如果有兴趣可以自行研究下。

本云存储插件的完成和测试要感谢@myp4p的支持,还有七牛、阿里云官方团队的支持。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

1

查看全部评分

发表于 2013-8-2 21:47:31 | 显示全部楼层
真是个让人兴奋的消息,现在upyun、aliyun、qiniu都是很热门的云存储服务商,尤其是qiniu,凭借技术优势,发展得很不错,官方这一次能这么时髦的赶上这波潮流,真是值得高兴啊,下回来测试一把试试
回复

使用道具 举报

发表于 2013-8-2 23:53:05 | 显示全部楼层
本帖最后由 myp4p 于 2013-8-3 18:49 编辑

测试了一下基于aliyun的OSS存储,发现只实现了基本的源文件上传功能
1、上传后,并没有变更附件为远程附件,数据库里面附件依然remote=0,但是文件确实及时上传到OSS了
2、删除帖子的时候,附件没有及时的被删除
3、手动修改remote=1的情况下,无法在OSS上生成缩略图,一旦启用缩略图,会导致缩略图无法访问
4、配置里面有个小错误,$_config['extend']['storage']['aliyun']['bucket'] = './discuz';,这一行配置,值应该只写bucket name,不能加上./,否则这一段传到OSS会被报bucket名不符合规则。
5、如果配置的bucket名里面含有横杠,就会报bucket名检测不通过,但是实际上OSS是支持这个符号的,在OSS上也已经成功建立这个bucket了
回复

使用道具 举报

 楼主| 发表于 2013-8-4 00:58:03 | 显示全部楼层
myp4p 发表于 2013-8-2 23:53
测试了一下基于aliyun的OSS存储,发现只实现了基本的源文件上传功能
1、上传后,并没有变更附件为远程附件 ...

感谢测试,因为我们没有阿里云的账号,所以关于阿里云的整个代码都是通过揣测他们的SDK完成的。如果能提供一个账号测试不胜感激。
回复

使用道具 举报

发表于 2013-8-4 12:32:31 | 显示全部楼层
Luca. 发表于 2013-8-4 00:58
感谢测试,因为我们没有阿里云的账号,所以关于阿里云的整个代码都是通过揣测他们的SDK完成的。如果能提 ...

我将账户信息PM给你,还有没有其他云存储需要帮忙测试的,说一声
回复

使用道具 举报

发表于 2013-8-4 21:55:55 | 显示全部楼层
建议云存储再加个插件,让云端和本地附件可以相互转移。
回复

使用道具 举报

发表于 2013-8-5 21:39:35 | 显示全部楼层
期待正式版
回复

使用道具 举报

发表于 2013-8-6 16:20:19 | 显示全部楼层
这个会加入到Discuz扩展下面?最好可以用插件来实现

点评

插件版本的已经有了,我们目前开发的性能模块大多会基于框架来开发  发表于 2013-8-6 21:46
回复

使用道具 举报

发表于 2013-8-6 18:38:41 | 显示全部楼层
前来支持测试
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|Comsenz ( 粤B2-20090059-165 )star

GMT+8, 2019-8-26 18:02

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表