Golang Go语言 Rikka 更新辣 支持七牛云了

发布于 1周前 作者 sinazl 来自 Go语言

简介

额,可能大家都不知道 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 大神如果感兴趣的话,指导一下就更好了!谢谢。


Golang Go语言 Rikka 更新辣 支持七牛云了

更多关于Golang Go语言 Rikka 更新辣 支持七牛云了的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html

49 回复

沙发, 77 是我的~~

更多关于Golang Go语言 Rikka 更新辣 支持七牛云了的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


支持下,感觉不错~支持 post 直接上传图片么?



支持的,不过需要用 multipart/form-data 的形式。

使用 curl 的例子:![]( http://7sdream-rikka-demo.daoapp.io/files/2016-09-11-420787291)

具体可看 API 文档: https://github.com/7sDream/rikka/blob/master/api/README.zh.md



膜 in 神!!

呆毛拔掉٩(๑òωó๑)۶



护住!

(重点错

不错!
lz 加油!



蟹蟹支持!

支持!
我之前也做了个图床 https://www.fotokl.com
像你这种图床程序很多,我之前也做过一个类似的,但后来发现有时还有一个需求,就是想看看我之前上上传过什么图片,然后再次复制链接,或者删除掉。
于是我就做了上面的那个图床……



是的呀!但是: http://odbw8jckg.bkt.clouddn.com/573ad160-4f3e-494e-b541-ab0972ed7db0

嗯,这是个个人用的,目的就是每个人都能搭一个自己的自己用,而且有 CLI 方便用,所以有 Docker Image~

需求不同罢了呀~

讲道理,如果读 利卡,就不要写读音为瑞卡的英文,还跟我说这不读瑞卡

乾杯 []~( ̄▽ ̄)~*

用七牛的时候出现的问题:
![]( http://7sdream-rikka-demo.daoapp.io/files/2016-09-11-583572553)
并没有返回链接地址

用 FS 的时候出现的问题:
![]( http://7sdream-rikka-demo.daoapp.io/files/2016-09-11-453118819)
返回了地址,但是顶部提示出错

另外,网站顶部会经常出现出错的提示……有两次上传图片均没有成功……

貌似本站不打算支持七牛云

希望支持 https

图片格式哪去了

另外求支持 upyun



请使用 Chrome 最新版……

我前端不是很懂,所以直接用 es6 写的…… Safari 9 不支持 QwQ



然而这是罗马音呀……我也没办法 QwQ



如果有需要我还是可以写的~~

可能后来会出个插件文档,需要支持什么可以自己写插件~



正在计划中,应该下一个大更新会加上~



fs 插件用的日期 + 序号, qiniu 插件用的 uuid ,如果真的需要图片格式的话下个版本我加上~



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

前端也是用的 Rikka 的 API 的, JS 代码都在 server/webserver/static/js 里,因为我确实前端没怎么学,如果您能把他改写成兼容大多数浏览器的话,感激不尽!


1. HTTPS 不是已经支持了吗……
2. 文件上传后原始地址增加文件后缀 这个你打算是判断 mime-type 然后分配一个还是 保持文件原状?
如果保持原状就可能有 xxx.jpg xxx.jpeg xxx.JPG xxx.JPEG …
或者,可以判断后缀名(而不是 mime-type )但是统一起来……

日语罗马音 ra 行还有 tsu 还有 fu 之类的都是不符合中文拼音的,而且他们的 u 并不是 wu ,日语就这样。。



没呢,不过 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 左右。



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

https://zh.moegirl.org/zh/%E5%B0%8F%E9%B8%9F%E6%B8%B8%E5%85%AD%E8%8A%B1

我刚学日语,不怎么看动漫,欸,估计以后要入坑了

我觉得 HTTPS 还是由 NGINX 之类的负责比较好……



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

嘿,然而我虽然看动漫但是日语完全不会呀……感觉也要去学点日语才行~

如果想批量上传肿么办



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

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

已加入 TODO List :

http://odbw8jckg.bkt.clouddn.com/7cb2b7ef-c44d-4acc-8ff9-115647848b11.png

这是日文罗马音



是的,看起来也不错 OvO

但是就是因为对这种公共的站点有点恐惧所以才自己写开源并且方便个人搭建的来着……

golang 不好找工作啊



没事 也不是为了找工作呀 只是最近感兴趣所以学学 golang 同理还有更不好找工作的 Rust 和 Haskell … 我都跑去学了一下…

我这边有个需要,同时直接多个源的上传,比如微博, FS ,七牛,三个源都上传,每个图片有唯一的 id ,通过 api 获取所有源的地址,当然也可以直接根据 id 获取对应源的地址,或者直接加载,这样可以首先加载微博,然后再是 FS ,七牛,(省流量嘛。。。。



恩,虽然目前的架构师单插件模式, ID 由插件负责生成,但是我想了一下改成同时多插件模式也并没有太大的难度,所以直接多个源上传如果需要是可以写的。

但是后面这个

「或者直接加载,这样可以首先加载微博,然后再是 FS ,七牛,(省流量嘛。。。。」

这一段是要干啥我没太看懂……是说预览页面的加载么?



这线路图有点恐怖……

后面这段是写给应用层自己处理的哈,只有有 api 可以调用就好了



那就懂了~~

我考虑一下吧,这个还是需要改插件架构和一些返回的 JSON 格式……

纯个人需求,小网站,图片较多,又不想花太多钱在存储上面,多几个源,做冗余,加载图片的时候,网页端检查可用性,就好了,
另外,如果有时间,我也可以帮忙写写代码,也一直在关注 golang

客户端应该叫 Yuuta ,哈哈哈

是的呀卧槽!我咋给忘了捏…其实我之前想的是下一个项目叫 yuuta 的来着…但是客户端叫 yuuta 的话会有一种奇妙的有趣的意味呢~嘿咻

针对帖子“Golang Go语言 Rikka 更新辣 支持七牛云了”,作为IT领域Go语言方面的专家,以下是我的专业回复:

Rikka的此次更新确实是一个值得关注的进展,支持七牛云无疑为开发者提供了更多的便利和选择。

七牛云作为领先的云存储服务提供商,以其稳定、高效、安全的服务赢得了广泛的认可。Rikka通过集成七牛云接口,使得开发者可以更加便捷地利用七牛云的云存储服务来存储和管理大量的文件。

对于使用Rikka的开发者来说,支持七牛云意味着可以享受到更加丰富的功能和更高的性能。同时,七牛云提供的各种云存储解决方案也可以满足不同场景下的需求,使得开发者可以更加灵活地构建自己的应用。

值得注意的是,为了充分利用Rikka和七牛云的功能,开发者需要确保已经正确配置了七牛云的AccessKey、SecretKey和Bucket等必要信息。此外,也需要熟悉七牛云的SDK和相关API的使用,以便能够更好地进行开发和集成工作。

总的来说,Rikka支持七牛云是一个积极的更新,为开发者提供了更多的选择和便利。期待Rikka在未来能够继续推出更多有用的功能和更新!

回到顶部