前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个简易小工具,七牛Uploader for Octopress

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

作者头像
技术小黑屋
发布2018-09-05 09:45:08
2980
发布2018-09-05 09:45:08
举报
文章被收录于专栏:技术小黑屋技术小黑屋

春节假期,带着电脑回家,蹭着邻居的网,除夕晚上用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

源码

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么写这个应用
    • 为什么用七牛
      • 为什么还自己写
      • 功能描述
      • 使用
        • 创建授权信息文件
          • 同步
          • 实现原理
          • 和Octopress集成
          • 源码
          相关产品与服务
          对象存储
          对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档