前情回顾
给没听过 Rikka 的朋友们的前情回顾
- 第一篇,发布: https://www.v2ex.com/t/303578
- 第二篇,七牛云插件: https://www.v2ex.com/t/305481
简介
简单来说 Rikka 是个 「个人图床系统」,好吧我知道很多人写过这种了(比如很好用的 iPic )……然而,谁叫我刚学 Golang 呢,随便找了个项目当 Helloworld 而已。
最开始的 Rikka 只是个小项目,只能把文件储存在当前服务器,然后开一个静态文件 Handler 来提供这些图片。后来我想了想,把储存后端变成了插件的形式,这样可以支持储存在不同的服务里,便于后期加插件。
对了, Rikka 是发布了 Docker 镜像的,自己部署起来超级方便!
目前已经支持本地储存,七牛云,又拍云啦~
Demo
目前有三个 Demo 了,都在 DaoCloud 上:
- Fs 本地储存插件 Demo : http://7sdream-rikka-demo.daoapp.io/
- Qiniu 七牛插件 Demo : http://7sdream-rikka-qiniu.daoapp.io/
- UPai 又拍插件 Demo : http://7sdream-rikka-upai.daoapp.io/
三个的密码都是默认的 rikka。
截图上次的帖子截了,反正没什么变化,这次就不截了。
更新了啥
上次发帖大家提了几个需求,我准备慢慢写,这次写了几个:
- 文件链接加上图片后缀名( 0.2.1 )
- CLI 支持批量上传,提供二进制下载( 0.2.2 , Rikkac 0.5.0 )
- 改写 JS ,提高浏览器兼容性,感谢 @Codefalling( 0.2.3 , 0.2.4 bug fix )
- 写完了又拍云插件( 0.3.0 )
其中 JS 用 ES5 改写了,上次帖子里试用 Demo 出错的朋友这次可以再试试,应该不会有什么错了。
CLI 支持批量上传

大概就这样,可以批量提供文件名,如果 shell 支持的话用通配符也行。
Rikkac 的文档: https://github.com/7sDream/rikka/blob/master/rikkac/README.zh.md
然后 Rikkac 提供了二进制下载,不过暂时只有 Linux 的: https://github.com/7sDream/rikka/releases/tag/Rikkac
部署
DaoCloud 部署教程:
各种链接:
Github : https://github.com/7sDream/rikka
Dockerhub : https://hub.docker.com/r/7sdream/rikka/
中文 README : https://github.com/7sDream/rikka/blob/master/README.zh.md
部署文档: https://github.com/7sDream/rikka/blob/master/deploy.zh.md
后续计划
- 微博插件
- HTTPS 支持
- 插件编写文档(虽然除了我应该也不会有人写插件就是了)
一些讨论
下面这几个问题希望大家帮忙讨论一下。
HTTPS
关于如何去支持 HTTPS 我有点纠结,因为我自己试了试,用 letsencrypt 生成证书,用 http 模块自带的 ListenAndServeTLS 函数就能支持 HTTPS 了。
但是问题在于, Rikka 主要是以 Docker App 的形式运行的,所以你没法提供给它证书文件,除非开个 Volume 专门放两个证书,但是这样这个 Volume 很浪费啊……
所以我很纠结要如何支持 HTTPS ,技术上没问题,但是用起来有点麻烦,所以暂时没写。
关于支持多插件
上一篇有个朋友希望能够在一个 Rikka App 里用多个插件。因为这是和我最初的设计不一样的,如果要改成这样那么插件的架构需要有小修改, API 也需要改,虽然说不难但是会向前不兼容, Rikkac 也会不兼容,很麻烦。
纠结了很久还是算了吧, Sorry 了朋友,不过 Rikka 是开源的,你完全可以 Fork 一份自己改成想要的样子~
关于 Demo
咳咳,我发现我每写一个插件就要多个 Demo ,这样下去我负担不起呀! DaoCloud 考不考虑赞助我一下?毕竟我都帮你们打了这么久广告了(手动滑稽~
好了不开玩笑,正经点。
Demo 确实不可能无休止的加呀,所以我准备过几天就把 fs 和 upai 的 Demo 关了,暂时只留个七牛的好了。当然辣,如果有人赞助我的话 Demo 多多益善。
End
以上,谢谢大家。
迟来的:大家中秋快乐~