题图:七牛云存储
背景
- 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 浏览器
方法有三
- 一、七牛云插件上传:简单
- 二、使用 dropzone 上传:方便
-
[使用Dropzone和七牛云存储来优化博客图床 闫肃的博客](http://yansu.org/2015/01/10/use-dropzone-and-qiniu-to-store-blog-images.html) - Mac OS 图床运用优化模式 - Microdust
-
- 三、使用命令行上传:快捷,尤其适合需要目录及协作的团队
一、七牛云插件上传:简单
- 下载 Demo 集锦- 七牛云存储的 qiniu upload files 插件
- 七牛云插件,像使用桌面系统一样管理你的七牛云空间
- 支持拖拽上传,批量操作,文件处理等功能
二、使用 dropzone 上传:方便
这两篇文章已经写得很清楚了,大家按照以下两篇文章操作即可
使用命令行上传
现在我就是采用命令行操作,一旦学会了以下的方法,都回不去了。
可实现的效果
- 将图片拖拽到指定的文件夹
- 在 CLI 敲入一行命令,文件自动上传至七牛云
- 例如我使用的命令就是:qrsync /Users/cnfeat/7niu/conf.json
- 说明:
qrsync
是指七牛的命令,/Users/cnfeat/7niu/conf.json
是配置文件,整个命令的意思是使用七牛的命令来运行配置文件。
- 在文本快速输入固定地址+图片名,即可获取该图片的地址
说明
- Mac,Mac 的用户名是 cnfeat,以下的教程请自觉将用户名替换成你的
- 下载好qrsync 命令行同步工具,得出名为 qrsync 的文件
- 注:以下的教程只会用到 qrsync 文件。
- sublime
以下的操作基本是按照七牛云的官方文档 qrsync 命令行同步工具 来操作,如有不明白,请移步官方文档。
安装命令行同步工具 qrsync
目的:能在 终端 直接调用 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 图片格式是固定的:

- 每次同步图片的命令行也是固定的
qrsync /Users/cnfeat/conf.json
- 联想到 atext 强大
于是
- 在 atext 设定快捷键
;qr
»qrsync /Users/cnfeat/7niu/cnfeat.json
;pi
»
那么最终生成图片外链地址只需要
- 终端输入
;qr
- 文本输入
;pi
补充图片名
收工!
PS
想要自定义七牛域名,可登录到七牛空间>空间设置>域名设置:修改默认域名
PPS
如果需要对图片进行缩放、剪切等操作,可参考
经过测试,我发现我只需要以下两项足矣。
?imageMogr2/thumbnail/!50p
- 将图片缩放50%
?imageMogr2/thumbnail/800x
- 将图片宽度限定为800,高度等比缩放
更新
qrsync 失效,使用 qshell 命令行,操作方法基本如上
注意
- 将 qshell 放入 /usr/local/bin/ 需要重启后才能使用该命令行
- 上传命令更改为 qshell qupload 100 /Users/cnfeat/7niu/omc.json
格式为
{ “src_dir”:”/Users/cnfeat/Nutstore.com/7niu/”, “access_key”: “A”, “secret_key”: “B”, “bucket”: “C”, “rescan_local”: true }
迭代
- 2017-12-06 更新 qshell 方法
- 2016-01-24 11:34:51 接受 闪闪 反馈,优化部分说明和图片缩放说明
- 2015-12-06 17:50:44 补增 域名设置
- 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
(题图:七牛云存储)
- 1)认知科学解惑:正确理解卡片创作的基本原理;
- 2)实践养成习惯:循序渐进开始每天写一张卡片;
- 3)原则善写卡片:掌握运用高手的 10 条认知心法;
- 4)规范高效创作:模仿组合高手的 10 条行动路径;
