专栏首页技术小黑屋一个简易小工具,七牛Uploader for Octopress

一个简易小工具,七牛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 条评论
登录 后参与评论

相关文章

  • 我的七牛参赛作品

    使用Ocopress写博客将近一年多了,大概几个月前同事给我推荐了七牛做网站的静态文件存储服务,于是果断尝试了一下,发现真实不错。速度不错,而且有免费套餐。很是...

    技术小黑屋
  • Java性能调优之容器扩容问题

    在Java和Android编程中,我们经常使用类似ArrayList,HashMap等这些容器。这些容器少则存储几条,多则上千甚至更多。作为性能调优的一部分,容...

    技术小黑屋
  • 深入剖析 Android中的 ArrayMap

    数据集合在任何一门编程语言中都是很重要的一部分,在 Android 开发中,我们会实用到ArrayList, LinkedList, HashMap等。其中Ha...

    技术小黑屋
  • 排序算法-选择排序

    算法简介 选择排序就是找到数组中最小元素将其和数组第一个元素交换位置,然后在剩下的元素中找到最小元素并将其与数组第二个元素进行交换,以此类推,直至整个数组排序结...

    武培轩
  • Java 混淆器

    在脑海中假想一下,在你苦苦经历 81 难,摸爬滚打研制的技术轮子,终于成型得以问世,遂打个 JAR 包投放于万网之中。可是没过几天,同样功能的轮子出现在你的眼前...

    一猿小讲
  • PyTorch中手机相册图像的分类

    这个小型项目听起来像是一个基于深度神经网络的图像分类器的良好实际应用。建立自己的手机相册分类器可能会是一个有趣的体验。

    代码医生工作室
  • 将ZBlog ASP版本切换到WordPress的步骤及注意事项

    坦白得说,更换过程中走了不少弯路,本来打算将ZBlog的ASP版本平稳切换到PHP版本,然后再考虑迁移到同样PHP平台下的WordPress。你可能会问我为什么...

    崔文远TroyCui
  • “实时地球”开放遥感API,可直接在线浏览影像数据

    搭建"互联网+实时地球"可根据用户的数据内容需要,将数据内容以API的形式提供,API接口可直接在线浏览影像成果及其他数据成果。实时地球将各类空间信息资源封装成...

    BestSDK
  • 2017年9月4日

    阿章-python小学生
  • Blazor带我重玩前端(二)

    Blazor目前有两种托管模式,一种是Server-Side模式,一种是WebAssembly模式。官方首先支持的是Service-Side模式,使用WebAs...

    Edison.Ma

扫码关注云+社区

领取腾讯云代金券