Rikka 更新辣 支持七牛云了

2016-09-11 17:20:24 +08:00
 7sDream

简介

额,可能大家都不知道 Rikka ,见我上次的帖子: https://www.v2ex.com/t/303578

简单来说 Rikka 是个 「个人图床系统」,好吧我知道很多人写过这种了(比如很好用的 iPic )……然而,谁叫我刚学 Golang 呢,随便找了个项目当 Helloworld 而已。

最开始的 Rikka 只是个小项目,只能把文件储存在当前服务器,然后开一个静态文件 Handler 来提供这些图片。后来我想了想,把储存后端变成了插件的形式,这样可以支持储存在不同的服务里,便于后期加插件。

然后这几天把七牛云的插件写完了,我自己基本上就准备长期使用了。

对了, Rikka 是发布了 Docker 镜像的,自己部署起来超级方便!

Demo 截图

随便在 DaoCloud 上部署了两个:

使用默认 FS 插件的 Demo : http://7sdream-rikka-demo.daoapp.io/

使用七牛云插件的 Demo : http://7sdream-rikka-qiniu.daoapp.io/

密码都是 rikka

首页截图:

预览页面截图:

从前端是看不出什么不同的,但是你上传一张文件之后从给出的图片源地址就能看出不同了。

CLI

Rikka 带了一个 CLI ,叫 Rikkac 使用效果如下:

Rikkac 的文档: https://github.com/7sDream/rikka/blob/master/rikkac/README.zh.md

源码

很早就在 Github 上了: https://github.com/7sDream/rikka

Web 前端, Web 后端, RESTful API 定义, API Server ,插件, Rikkac CLI 都在这。

文档

基本上中文英文都写了,但是英文有点拙计,这里放中文的。

README : https://github.com/7sDream/rikka/blob/master/README.zh.md

部署文档: https://github.com/7sDream/rikka/blob/master/deploy.zh.md

DaoCloud 部署教程:

计划

后面的计划的话,首先是支持 https ,然后是新浪微博插件,如果有人需要的话。然后是上传请求的 CSRF ,以及请求限制,自动 ban IP 。

敬请期待。

PS :

感觉还是挺全栈的一个项目吧,如果是新学 Golang 的小伙伴应该可以看看,能学到一些的,比如插件架构之类的。

然后请各大 Golang 大神如果感兴趣的话,指导一下就更好了!谢谢。

2954 次点击
所在节点    Go 编程语言
48 条回复
7sDream
2016-09-11 20:40:52 +08:00
@strwei

正在计划中,应该下一个大更新会加上~
7sDream
2016-09-11 20:41:34 +08:00
@imWBB

fs 插件用的日期 + 序号, qiniu 插件用的 uuid ,如果真的需要图片格式的话下个版本我加上~
7sDream
2016-09-11 20:43:46 +08:00
@Satan4869

具体请看: https://github.com/7sDream/rikka/blob/master/README.zh.md#特点 后面的注释

前端也是用的 Rikka 的 API 的, JS 代码都在 server/webserver/static/js 里,因为我确实前端没怎么学,如果您能把他改写成兼容大多数浏览器的话,感激不尽!
isCyan
2016-09-11 20:58:40 +08:00
@7sDream
1. HTTPS 不是已经支持了吗……
2. 文件上传后原始地址增加文件后缀 这个你打算是判断 mime-type 然后分配一个还是 保持文件原状?
如果保持原状就可能有 xxx.jpg xxx.jpeg xxx.JPG xxx.JPEG ...
或者,可以判断后缀名(而不是 mime-type )但是统一起来……
isCyan
2016-09-11 21:01:12 +08:00
@7sDream 日语罗马音 ra 行还有 tsu 还有 fu 之类的都是不符合中文拼音的,而且他们的 u 并不是 wu ,日语就这样。。
7sDream
2016-09-11 21:03:36 +08:00
@isCyan

没呢,不过 HTTPS 支持起来不难,但是需要部署的用户自己提供证书。

当然是 mine ,目前上传之前在 client side 和上传到 server 之后都会判断 mime type 的,而且会 server side 是根据文件内容检测出 mime type 而不是 request header ,用的 `http.DetectContentType` 这个函数。

目前只允许: jpeg , bmp , png , gif 这四种,不过日常应该够用了。

代码在: https://github.com/7sDream/rikka/blob/master/server/apiserver/upload.go#L85 左右。
7sDream
2016-09-11 21:05:12 +08:00
@isCyan

恩呢,很明显 Rikka 这个名字就是来源于六花嘛: Takanashi Rikka ,连首页图片都是她惹~

https://zh.moegirl.org/zh/%E5%B0%8F%E9%B8%9F%E6%B8%B8%E5%85%AD%E8%8A%B1
isCyan
2016-09-11 21:06:58 +08:00
@7sDream 我刚学日语,不怎么看动漫,欸,估计以后要入坑了
isCyan
2016-09-11 21:08:46 +08:00
@7sDream 我觉得 HTTPS 还是由 NGINX 之类的负责比较好……
7sDream
2016-09-11 21:11:50 +08:00
@isCyan

那就加个参数开关好了,不想上 NGINX 的就用这个自带的。不过话说这是个人图床,作为七牛云或者又拍云的前端,其实也不会有什么巨大的访问量,倒也不用上 NGINX 之类的,我个人其实都基本用 CLI 上传的说~

嘿,然而我虽然看动漫但是日语完全不会呀……感觉也要去学点日语才行~
diefishfish
2016-09-11 22:52:22 +08:00
如果想批量上传肿么办
7sDream
2016-09-11 22:56:13 +08:00
@diefishfish

目前计划 API 不接受批量上传。

但是 Rikkac CLI 之后应该会支持批量上传的~

已加入 TODO List :

http://odbw8jckg.bkt.clouddn.com/7cb2b7ef-c44d-4acc-8ff9-115647848b11.png
hanmiao
2016-09-12 01:32:02 +08:00
支持
7sDream
2016-09-12 08:14:47 +08:00
@hanmiao

蟹蟹!😽
chocotan
2016-09-12 10:03:02 +08:00
@jeremaihloo 这是日文罗马音
w7938940
2016-09-12 10:12:57 +08:00
http://yotuku.cn/ 这个七牛的也不错
7sDream
2016-09-12 10:15:57 +08:00
@w7938940

是的,看起来也不错 OvO

但是就是因为对这种公共的站点有点恐惧所以才自己写开源并且方便个人搭建的来着……
ljcarsenal
2016-09-12 14:31:06 +08:00
golang 不好找工作啊
7sDream
2016-09-12 14:54:06 +08:00
@ljcarsenal

没事 也不是为了找工作呀 只是最近感兴趣所以学学 golang 同理还有更不好找工作的 Rust 和 Haskell … 我都跑去学了一下…
majinjing3
2016-09-12 14:57:38 +08:00
@7sDream 我这边有个需要,同时直接多个源的上传,比如微博, FS ,七牛,三个源都上传,每个图片有唯一的 id ,通过 api 获取所有源的地址,当然也可以直接根据 id 获取对应源的地址,或者直接加载,这样可以首先加载微博,然后再是 FS ,七牛,(省流量嘛。。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/305481

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX