使用Ocopress写博客将近一年多了,大概几个月前同事给我推荐了七牛做网站的静态文件存储服务,于是果断尝试了一下,发现真实不错。速度不错,而且有免费套餐。很是支持。最近发现七牛有一个demo大赛,于是果断参加了。
痛点
- 域名Godaddy购买,无法备案,不能使用七牛的独立域名绑定
- 服务器为github pages, 有300M空间限制,所以只能把静态文件放到七牛
- 每次写带图片等资源的博客,都需要先上传到七牛,然后得到外链地址,贴回到博客,过于繁琐啦。
解决思路
由于ocotpress程序是将markdown文档转换成纯静态的HTML网页,我们可以在这个转换过程之前或者期间将图片等资源自动上传到七牛服务器,然后替换这些资源的地址为已上传文件的外链。
实现细节
- 通过rb-inotify检测文件变化,新文件会直接上传,已经上传过的文件则覆盖更新。避免在生成html网页时大量拥挤上传
- 进行rake generate时,对没有上传的文件进行上传
- 通过sqlite数据库,记录文件路径和最后修改时间进行验证。
好处
- 节省了博客在github中的空间占用,让github空间限制几乎不再存在。只剩纯文本了,能占用多少空间
- 提高了在国内的访问的速度
- 使用更多的七牛的服务,比如防盗链等功能。
安装
如果尚未安装Octopress,请参考本文安装。
超级简单的一步安装
1 2 |
|
配置文件
安装过程中,会使用vi打开一个配置文件,文件内容为,文件路径位于家目录下的.qiniu.ini。按照自己的实际情况填写配置即可。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
启动程序
配置完成,轻松执行一个脚本就可以启动监控文件变化自动上传的程序了。当检测目录有文件变化时就会自动上传到七牛的文件服务器。
1
|
|
文件介绍
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
源码地址
解答问题
- 提问:为什么配置文件放在家目录下
回答:配置文件中包含了七牛的accessKey和accessSecret,默认的ocotpress受git管理,为了避免将配置文件误加入git管理,传到服务器端造成前面的accessKey和acessSecret泄露,所以放到家目录下。
提问:既然文件都上传到了,是不是可以删除掉存储到public/images/的文件
- 回答:当然可以,因为生成的网页的图片地址为七牛的外链地址,目前程序没有做主动删除文件的操作。
投票地址
我的作品名称octopress_qiniu
最后希望大家多多支持,投我一票哈。