写个人博客也快两年了,在博客里放图片一直是个老大难的问题,微博一类的三方图床不爱用,总觉得不极客,使用 OSS 的话多少跟技术沾些边,要是直接使用 linux 服务器搭建的话,又太麻烦,因为需要处理的事情太多了,从图床的角度来说,稳定性还是很重要的。
抽个空就会想想这个事情,好歹想出来使用 Github 来做图床,但是这就算是跟技术沾边了?我慢慢来说。
如何使用 Github 图床
使用 Github 构建图床是很投机的一件事,和使用微博的方式类似,不过更加自由。
首先创建一个新的仓库当做图床
仓库地址为 https://github.com/wxnacy/image
然后上传一个图片
图片的网页地址为 https://github.com/wxnacy/image/blob/master/blog/mavel5.png
找到图片网址
然后点击右侧的 Download
,网页就会跳转到图片的下载地址,也就是图片链接。
下载地址为 https://raw.githubusercontent.com/wxnacy/image/master/blog/mavel5.png
通过这个规律,我就可以在上传完图片后,根据图片地址规则拼接出我们想要的图片链接。
然后这个方式并不酷。
使用 goss 构建图床
身为一个程序员,用这样的方式进行上传、拼接地址,这个过程一点都不酷。我希望的是更极致,更方便的方式,所以 goss 诞生了。
goss 全称 Github Object Storage System,也就是 Github 版本的 OSS。
它使用仓库代替 bucket,使用文件 path 代替 key,这样每个仓库都是一个独立的图床。
goss 自带一套很方便的命令行工具来操作仓库和文件,下面简单的使用几个命令,走一下增删改查的流程。
使用
安装
目前仅支持 pip 安装
1 | $ pip install goss # 安装 |
登陆
1 | $ goss-cli login |
根据命令行提示输入 Github 用户名密码即可,执行一次后会记录在本地,如果想要更换用户再次执行即可。
goss 会在登陆成功后自动获取用户提交信息的 name 和 email,无需像 Git 一样再去手动配置
创建仓库
1 | $ goss-cli repo test_goss -m post |
等待命令行执行成功后,仓库创建成功,如图
上传图片
上传操纵,单独有个命令为 goss
1 | $ goss -r test_goss -p test/ goss1.png |
在日志中会打印出图片的下载地址,然后我们并不需要手动复制,在等待上传的 Waiting...
阶段,我们可以直接使用 <ctrl-v>
来在文本中直接黏贴图片链接,并且继续编写文章,等图片上传完成后,该链接自动生效。
这也是 goss 最最方便的地方,只需要执行一条命令,剩下的不需要再去管。
参数部分
-r
仓库名称,如果不想每次手动输入,可以使用goss-cli config repo.name <name>
来进行配置-p
文件重命名,如果以/
结尾,代表以原文件名上传到该目录中
查看文件
1 | $ goss-cli file test/goss1.png -r test_goss |
删除文件
1 | $ goss-cli file test/goss1.png -r test_goss -m delete |
先你应该发现了,命令中的正删改查的方式来源于 RESTFul 风格。
--method/-m
参数
post
新建get
查看,默认delete
删除
删除仓库
1 | $ goss-cli repo test_goss -m delete |
现在这个命令应该慎用,因为这是彻彻底底的删除,除非你真的想删除一些老项目,否则最好不要用这个命令。
今天只是简单介绍下使用 goss 来构建图床,goss 本身会有很多功能,我也会不断的进行更新,你可以使用帮助命令来获取更多的信息
1 | $ goss-cli --help |
子命令也可以查询
1 | $ goss-cli file --help |