一个简易小工具,七牛Uploader for Octopress

春节假期,带着电脑回家,蹭着邻居的网,除夕晚上用ruby写了一个简单的工具。安利一下,广而告之。

为什么写这个应用

为什么用七牛

七牛是我比较看好的一个云存储,其国内国外有很多cdn,如果我把我的网站放到七牛上,打开速度应该会显著提升。

为什么还自己写

  • 七牛官方的qrsync不支持例外目录,会上传.git文件夹下的内容
  • 七牛的qrsync更新策略不符合我的需求
  • 自己有时间和能力

功能描述

  • 暂时只支持对文件的上传和更新,不含删除和下载功能
  • 尤其适合于Octopress网站

使用

创建授权信息文件

从七牛后台 账号—>秘钥 中获取AccessKey和SecretKey分别填入下面

1
2
3
[auth]
access_key = ""
secret_key = ""

将上述内容保存成文件.qiniu.ini放在同步脚本的祖先目录上即可,也可以放在家目录。

举个例子,比如你的同步脚本放在~/tools/notes/sync_dir/下,你的配置文件,可以放在~/,~/tools/以及~/tools/notes/。

注意,不要将上述文件放同步脚本目录,以免信息泄露。

同步

使用方法如下,很简单,需要传入同步文件夹路径和bucket名称

1
ruby push2Qiniu.rb dir_to_sync bucket

实现原理

实现原理很简单,基本如下

  • 新文件 直接上传
  • 已存在的文件,如果lastModified没有变化,不上传
  • 已存在的文件,如果lastModified有变化,检测文件内容md5,如果和上一次不同,则上传,否则不上传。

和Octopress集成

修改Octopress的Rakefile文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
desc "Default deploy task"
task :deploy do
  # Check if preview posts exist, which should not be published
  if File.exists?(".preview-mode")
    puts "## Found posts in preview mode, regenerating files ..."
    File.delete(".preview-mode")
    Rake::Task[:generate].execute
  end

  Rake::Task[:copydot].invoke(source_dir, public_dir)
  atom2rssDir = '~/osc_git/php_works/'
  Rake::Task["#{deploy_default}"].execute
  //在这里加入同步脚本执行
end

源码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值