题图:七牛云存储
背景
-
2014年2月开始练千字文
-
开始接触 Markdown 语法
-
知道了图床,用免费图床各种不顺心
-
免费的
- yupoo:当时100m的免费空间,用了一阵子,很快就爆了
- 新浪相册:会压缩图片,批量上传老是出问题,老担心他家搞个防盗链
- 其他国内的免费相册服务,不是界面丑就是速度慢……
- 国外的图床不敢用,挂了可是个大工程呐,我当时还没备份的习惯……
- 其他私人搭建的图床,用过几次,挂了
-
收费的
- 换过杂七杂八的免费图床
- 总觉得找免费图床,心神消耗挺大的
- 我只想好好写博客而已,还是找个收费吧,一了百了
- 收费的图床在知乎一搜,要么又拍云,要么七牛
- 注册又拍云,发现不付费不能用呀……放弃了~
- 注册七牛,发现有 10g 空间体验账户,用起
- 那时候的我以为 10g 空间是容量,够我用好一阵子,嗯!
选定七牛
- 2014年3月注册了七牛免费账户(注册后一直没用)
- 5月搭建博客,常写博客,用 七牛 配图
- 免费账户 肆无忌惮 地用了一年多,10G 流量终于爆了
- 这时,我才搞清楚 容量 和 流量 的区别(too young~)
- 2015年7月,一篇 多图文章 让我欠费了
- 终于,七牛冻结了账户,果然出来混是要还的
- 终于,我付费了,使用了标准服务
- 继续使用 七牛 原因
- 使用一年多,极其稳定
- 转移成本极大,积累了近一年的图片……
- 相比其他平台便宜太多
- 服务器故障(小用户没啥感觉)给我发过几个红包~标准用户才可以用
- 购买服务之后,马上将流量大户(1M以上的图片)换了
- 最近几个月平均消费:每月15元左右
- 挺好,这消费证明我的博客还有人看……
- 付费心血教训:上传图片必须限制在 200 k 以内呐
- 想起以前,2 M 的图片,眼都不眨一下……
以往方案
背景终于啰啰嗦嗦地介绍完了,说说以前我是如何上传并使用七牛图床的吧~
- 登录打开七牛云网页个人存储空间
- 上传图片
- 复制外链
- 粘贴到 Markdown
一张图片用了四步呐,想想这篇文章的图片都是如此上传的,还真是作死。
转折
折腾起来
准备工具及我的配置
- 七牛账户一枚,或拥有 七牛 的 AccessKey/SecretKey,已有建立的空间
- 例如我的七牛云空间(bucket)名字就是 cnfeat
- 假设我的 AccessKey 是 cnfeat1234
- 假设我的 SecretKey 是 cnfeat5678
- chrome 浏览器
简单的实现方法
-
下载 Demo 集锦- 七牛云存储的 qiniu upload files 插件
- 七牛云插件,像使用桌面系统一样管理你的七牛云空间
- 支持拖拽上传,批量操作,文件处理等功能
-
安装完成后,填写表单
- 填写完成,会出现如下界面,
- 将图片拖入,出现图片外链地址,复制即可
命令行折腾
以上的结果已经满意了吗?NO! NO! NO!
用命令行才是王道!以下是我用 命令行折腾七牛云同步 准备的工具
- Mac,Mac 的用户名是 cnfeat,以下的教程请自觉将用户名替换成你的
- 下载好qrsync 命令行同步工具,放在得出名为 qrsync 的文件
- 文件地址:
/Users/cnfeat/Downloads/qiniu-devtools-darwin_amd64-v2.6.20131211/qrsync
- 注:以下的教程只会用到 qrsync 文件。
- 文件地址:
- sublime
以下的操作基本是按照七牛云的官方文档 qrsync 命令行同步工具 来操作,如有不明白,请移步官方文档。
配置 qrsync
配置目的:能在 终端 直接调用 qrsync 命令
- 方法:将
qrsync
文件放入/usr/local/bin/
- 知识点:在
/usr/local/bin/
出现的 字符 都是可以直接在终端直接调用的命令行
- 知识点:在
- 实现方法一:
- 复制
qrsync
文件 - 快捷键 Shift+Command+G 打开
/usr/local/bin/
- 粘贴
qrsync
文件
- 复制
- 实现方法二:
- 直接用复制命令行
cp
- 打开 终端
- 输入
cp /Users/cnfeat/Downloads/qiniu-devtools-darwin_amd64-v2.6.20131211/qrsync /usr/local/bin/
- 意思是复制 Downloads 位置的
qrsync
文件 到/usr/local/bin/
- Linux基本命令学习之二---Linux基本命令
- 直接用复制命令行
配置 conf.json
配置说明:用 conf.json
将本地文件与七牛云的通道打通,将本机指定文件上传到指定的空间。
目的:将 conf.json
文件里面的语法填写正确
{
"access_key": "Please apply your access key here",
"secret_key": "Dont send your secret key to anyone",
"bucket": "Bucket name on qiniu resource storage",
"sync_dir": "Local directory to upload",
"async_ops": "fop1;fop2;fopN",
"debug_level": 1
}
- 建立
conf.json
文件- 用 sublime 新建文档,粘贴以上文本
- Shift+Command+P 打开 命令面板
- 输入 json 回车,将文件格式改为
json
- Command+S,将其保存在
/Users/cnfeat/7niu/
目录下,文件名保存为conf
- 这样
conf.json
文件就新建好 - 目录地址是
/Users/cnfeat/7niu/conf.json
conf.json
文件下载链接: http://pan.baidu.com/s/1mgq5MRY 密码: accm
- 配置
conf.json
-
到 https://portal.qiniu.com/setting/key 获取你的AccessKey/SecretKey
-
"bucket" 即你的七牛云空间名字,你的空间名字在七牛网内是唯一的
- 例如,我的七牛云空间名字是 cnfeat
-
"sync_dir" 是你本地要上传图片文件夹的地址
- 例如,我就在 Documents 文件夹建了 名为
qrsync
的文件夹,并在里面放了一张名为cnfeat-img.jpg
的图片 - 所以,上传地址就是
/Users/cnfeat/Documents/qrsync
- 例如,我就在 Documents 文件夹建了 名为
-
"async_ops" 是设置上传预转参数,可以留空
-
"debug_level" 默认就好
-
所以,最终的 conf.json
配置是这样的
{
"access_key": "cnfeat1234",
"secret_key": "cnfeat5678",
"bucket": "cnfeat",
"sync_dir": "/Users/cnfeat/Documents/qrsync",
"async_ops": "",
"debug_level": 1
}
为了易于区分,我后来将 conf.json
重命名为 cnfeat.json
使用命令行同步
打开终端输入
qrsync /Users/cnfeat/7niu/cnfeat.json
出现
2015/11/22 20:40:48 [INFO][qbox.us/qrsync/v1] qrsync.go:205: Syncing /Users/cnfeat/Documents/qrsync => cnfeat ...
2015/11/22 20:40:48 [INFO][qbox.us/qrsync/v1] qrsync.go:213: Progress file: /Users/cnfeat/.qrsync/lEfrYxfiWq48qgm95oixXg==.log
2015/11/22 20:40:48 [INFO][qbox.us/qrsync/v1] syncer.go:83: Put /Users/cnfeat/Documents/qrsync/.DS_Store => .DS_Store
2015/11/22 20:40:51 [INFO][qbox.us/qrsync/v1] syncer.go:83: Put /Users/cnfeat/Documents/qrsync/cnfeat-img.jpg => cnfeat-img.jpg
2015/11/22 20:40:51 [INFO][qbox.us/qrsync/v1] qrsync.go:184: Sync done!
显示 cnfeat-img.jpg
图片已经上传成功。
打开 http://cnfeat.qiniudn.com/cnfeat-img.jpg可以看见图片了。
至此,用 命令行 上传图片至 七牛云 的教程完成。
高阶设置
- 虽然上传图片成功了,但是我想要得到图片外链怎么办?
- 难道我还要到七牛云网页个人存储空间根据文件名将图片搜出来,然后复制其外链吗?
- 那也太傻逼了吧
联想
- 图片上传后外链的地址的前缀是固定的:
http://cnfeat.qiniudn.com/
- Markdown 图片格式是固定的:
![](http://cnfeat.qiniudn.com/)
- 每次同步图片的命令行也是固定的
qrsync /Users/cnfeat/conf.json
- 联想到 atext
强大
于是
- 在 atext 设定快捷键
-
;qr
>>qrsync /Users/cnfeat/7niu/cnfeat.json
-
;pi
>>![](http://cnfeat.qiniudn.com/)
-
那么最终生成图片外链地址只需要
- 终端输入
;qr
- 文本输入
;pi
补充图片名
收工!
迭代
- 2015-11-30 14:24:46 补增 背景 描述
- 2015-11-29 20:08:51 更新 conf.json 目录
- 2015-11-22 21:15:54
参考
【六经皆我注脚】
做一名黑客会有很多乐趣,但却是要费很多气力方能得到的乐趣。 这些努力需要动力。成功的运动员从锻炼身体、超越自我极限的愉悦中得到动力。 同样,做黑客,你得能从解决问题,磨练技术及锻炼智力中得到基本的乐趣。
—— Eric S. Raymond 《如何成为一名黑客》
- 陈素封@开智
- 公众号:cnfeat
- Blog:cnfeat.com
(题图:七牛云存储)
网友评论
另外一个麻烦点的方法是使用 yotuku 这个图床,可以绑定 7 牛云
qrsbox 是七牛云存储提供的同步上传客户端工具,支持 Linux、Mac OS X、Windows 等操作系统。使用 qrsbox,可将用户本地某个目录的所有文件同步上传到七牛云存储中,同时监控目录变化,将目录中新增的文件也上传至七牛云存储。
配合操作系统已有的强大文件管理功能(分级存放、按指定项目排序、查找匹配指定条件的文件等),即可轻松优雅地完成繁复的文件管理事务。
注意:qrsbox 不会同步文件的删除操作。也就是说,如果受监控的目录中有文件被删除,已上传至七牛云存储的文件副本仍旧保留。如果用户确实需要删除该文件,可以到七牛开发者平台中删除。这一设计的目的是为了防止误删文件造成数据丢失。同时还可以收获另一个好处,就是同步上传完一个文件后,本地可以马上删除该文件以释放磁盘空间。
注意:
qrsbox 的 Windows版本适用于华东,华北,华南,北美机房。
qrsbox 的 Mac 和 Linux 版本仅适用于华东空间,其他地区的空间可以使用qshell。
功能特性
支持配置文件
支持大文件上传
支持增量部分同步更新
支持在后台运行监控