首页 / 帖子
CDN与七牛云存储的问题

不知有没有人用过CDN这个模块?
我想做以图片为主内容分享网站,我在考虑用七牛的云存储(如果未来业务快速增长,我不太需要花太多的精力考虑服务器方面的带宽和吞吐能力),但是相关的资料非常少,只是提到了drupal集成七牛实际上是使用CDN这个模块。
有用过的高手指点一二,先谢了。

5个答案
王斌
发布于:2015-07-07 16:59

使用第三方的存储都需要API开发,比如阿里的OSS,七牛云存储等等。

原理大概是这样的,

  1. 你需要通过API把文件放到云存储上面。

  2. 在页面中引用云存储的地址(比如阿里的http://oss....)

云存储的地址一般配合cdn使用,也就是说你得到的地址其实是通过cdn分发的,不过内部过程你不需要太关心罢了。


所以,cdn跟云存储还是两回事情。云存储有个严重的问题就是上传文件速度问题,这个取决你网络和云的速度,因为他不是本地硬盘,当然你也可以通过其他方式解决。

老葛
发布于:2015-07-07 17:37

这个开始也做过,但是不是很理想,用的是阿里的ECS,那时候打算把图片和音频视频文件全都放到七牛的云存储或者是oss里,但是试了试,才发现这更本不现实!

为啥?

原因太多了,网速虽然是一个重要的方面,但是最重要的还是七牛的云存储不便于管理(图片删除、更新什么的),而阿里的OSS上传的大小有限制(2014年初,不知道现在还有没)!

当然,最重要的是自己太懒,不想写对接的模块~

就像老赵说的那样"现在 云存储一般配合cdn使用"。不可能把图片什么的都放上去的。

当然 如果想试试 可以哦~记得有个相关的模块。可以把field直接上传到云。

赵高欣
发布于:2015-07-08 12:08

更新最新的研究:


标准的CDN应该有两种工作模式:
Pull:网站系统只需要简单的把资源地址改为CDN前缀的地址就可以了,不需要做任何配合工作。当用户访问资源时,通过CDN网络来获取,由CDN网络进行cache和优化。
Push:网站需要主动的将资源推送给CDN网络,此模式能够最优化网站和CDN网络的通信。

七牛其实是云存储,不是CDN,当然它和CDN厂家有合作。

按照我的理解,应该可以这样利用七牛的云存储:
静态内容的云加速:我们手动的将静态内容上传到七牛的公共空间,然后在CDN模块中配置 Origin Pull模式,然后配置CDN mapping。

但是对于一个用动态内容的网站,如何利用七牛的云存储呢?
因为网站会有大量用户上传的图片,如何将这些图片及时地同步到七牛的公共空间上,是一个需要解决的问题,至少七牛没有现成的解决方案。

CDN模块还有一个工作模式是File Conveyor,它的大致原理是在后台运行一个python写的File Conveyor,由它实现网站资源文件到CDN的同步,一旦同步完成,会将同步结果写到SQLite数据库中。
我想Drupal会根据文件是否已同步到CDN,来决定网页从哪里获取资源文件。

现在的问题是,七牛好像不是以FTP等方式上传文件的,它有一个专门的同步工具,但不会有Drupal所需要的SQLite的输出,所以看起来这个路走不通。当然可以改用支持FTP的又拍云,或者尝试根据七牛的API扩展File Conveyor,让它支持七牛。


Amanda Song
发布于:2015-07-09 07:28

可以考虑使用storage api模块。 七牛记得支持 ftp的,storage api可以通过ftp把文件都保存在其他地方。

更廉价的方案:买个大的ftp虚拟空间,宽带便宜的,专门用于保存文件。

Amanda Song
发布于:2015-09-22 18:04

storage api 有一个严重的错误。manage display 设置的 Image styles  显示不出来。提示错误