前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >我的七牛参赛作品

我的七牛参赛作品

作者头像
技术小黑屋
发布2018-09-04 17:09:25
5680
发布2018-09-04 17:09:25
举报
文章被收录于专栏:技术小黑屋技术小黑屋

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

痛点

  • 域名Godaddy购买,无法备案,不能使用七牛的独立域名绑定
  • 服务器为github pages, 有300M空间限制,所以只能把静态文件放到七牛
  • 每次写带图片等资源的博客,都需要先上传到七牛,然后得到外链地址,贴回到博客,过于繁琐啦。

解决思路

由于ocotpress程序是将markdown文档转换成纯静态的HTML网页,我们可以在这个转换过程之前或者期间将图片等资源自动上传到七牛服务器,然后替换这些资源的地址为已上传文件的外链。

实现细节

  • 通过rb-inotify检测文件变化,新文件会直接上传,已经上传过的文件则覆盖更新。避免在生成html网页时大量拥挤上传
  • 进行rake generate时,对没有上传的文件进行上传
  • 通过sqlite数据库,记录文件路径和最后修改时间进行验证。

好处

  • 节省了博客在github中的空间占用,让github空间限制几乎不再存在。只剩纯文本了,能占用多少空间
  • 提高了在国内的访问的速度
  • 使用更多的七牛的服务,比如防盗链等功能。

安装

如果尚未安装Octopress,请参考本文安装。

超级简单的一步安装

1 2

cd YOUR_OCTOPRESS_ROOT_DIR curl -o /tmp/install.sh https://gitcafe.com/androidyue/octopress_qiniu/raw/master/install.sh && bash /tmp/install.sh

配置文件

安装过程中,会使用vi打开一个配置文件,文件内容为,文件路径位于家目录下的.qiniu.ini。按照自己的实际情况填写配置即可。

1 2 3 4 5 6 7 8 9 10 11 12 13 14

#Qiniu Config File #Project [octopress] #Your Bucket to Store Images In Octopress image_bucket = "your_bucket" #Your Image Folder Path to store the files locally. Usually it's #{OCTORESS_DIRECTORY}/public/images/ image_dir = "image_dir_in_octopress" #Auth Info #Generate two following two keys in Qiniu Web Portal [auth] access_key = "your_access_key" secret_key = "your_secret_key"

启动程序

配置完成,轻松执行一个脚本就可以启动监控文件变化自动上传的程序了。当检测目录有文件变化时就会自动上传到七牛的文件服务器。

1

YOUR_OCTOPRESS_ROOT_DIR/startQiniu.sh

文件介绍

1 2 3 4 5 6 7 8 9 10 11 12 13 14

. |-- install.sh #快捷安装脚本 |-- octopress #覆盖octopress程序的目录 | `-- plugins | `-- image_tag.rb # 覆盖Octopress 程序自带的image_tag,实现图片上传到七牛 |-- qiniu #工具程序的主目录 | |-- qiniuCLI.rb #命令行工具,这个工具是所有上传下载请求的对外处理程序,本工具中所有的请求都是直接调用这个工具。 | |-- .qiniu_config_template.ini #配置文件模板,不要对这个文件直接配置,请使用家目录下的.qiniu.ini进行配置 | |-- qiniuCore.rb #最主要的处理脚本。支持从ini文件读取配置,数据库存储文件的上传信息,调用七牛的SDK来完成文件的上传和下载。 | |-- .qiniu.db #数据库文件,存储上传的记录 | |-- qiniuFileNotifier.rb #监控配置目录变化,自动上传或者覆盖文件。 | `-- .setupQiniu.rb #安装需要的gem,复制配置文件到家目录 |-- README.md #说明文件 `-- startQiniu.sh #检查安装情况并启动文件监控自动上传启动程序

源码地址

解答问题

  • 提问:为什么配置文件放在家目录下
  • 回答:配置文件中包含了七牛的accessKey和accessSecret,默认的ocotpress受git管理,为了避免将配置文件误加入git管理,传到服务器端造成前面的accessKey和acessSecret泄露,所以放到家目录下。
  • 提问:既然文件都上传到了,是不是可以删除掉存储到public/images/的文件
  • 回答:当然可以,因为生成的网页的图片地址为七牛的外链地址,目前程序没有做主动删除文件的操作。

投票地址

我的作品名称octopress_qiniu

投票地址

最后希望大家多多支持,投我一票哈。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 痛点
  • 解决思路
  • 实现细节
  • 好处
  • 安装
    • 超级简单的一步安装
      • 配置文件
      • 启动程序
      • 文件介绍
      • 源码地址
        • 解答问题
          • 投票地址
          相关产品与服务
          文件存储
          文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档