Go File: 基于 Go 的文件分享工具

2022-07-11 08:23:06 +08:00
 JusticeIsHere

概述

基于 Go 的文件分享工具,仅单可执行文件,开箱即用,内置图床和视频播放页面。

项目地址: https://github.com/songquanpeng/go-file

在线演示: https://go-file.herokuapp.com/ (默认用户名 admin,密码 123456)

特点

  1. 无需配置环境,仅单个可执行文件,直接双击即可开始使用。
  2. 自动打开浏览器,分享文件快人一步。
  3. 提供二维码,可供移动端扫描下载文件,告别手动输入链接。
  4. 支持分享本地文件夹。
  5. 适配移动端。
  6. 内置图床,支持直接粘贴上传图片,提供图片上传 API 。
  7. 内置视频播放页面,可用于在其他设备上在线博客自己电脑上的视频,轻松跨设备在线看视频。
  8. 支持拖拽上传,拷贝上传。
  9. 允许对不同类型的用户设置文件访问权限限制。
  10. 访问频率限制。

使用方法

v0.3.3 以及之前版本的使用方法请点击此处

直接双击即可使用,默认端口为 3000,程序在第一次启动时会自动创建管理员账户,用户名为 admin,密码为 password,记得登录后到 管理页面 下的 账户管理 标签页中更改你的用户密码。

之后程序将自动为你打开浏览器,点击右上角的 上传 按钮即可上传,支持拖放上传,支持同时上传多个文件。

进阶使用:

  1. 如果要修改端口,动时请指定 port 参数:./go-file.exe --port 80
  2. 如果需要分享文件夹,启动时请指定 path 参数:./go-file.exe --path ./this/is/a/path,之后点击导航栏上的 文件 即可。
  3. 如果需要分享本地的视频资源,加 video 参数:./go-file.exe --video ./this/is/a/path,之后点击导航栏上的 视频 即可。
  4. 如果需要启用访问速率控制,需要在启动前设置 Redis 连接字符串环境变量 REDIS_CONN_STRING

如果你不知道怎么加参数:

  1. 打开 go-file 所在的文件夹,
  2. 按住 shift 并右键空白区域,
  3. 选择在此处打开 PowerShell(如果是 Windows 11 的话则需要先点击显示更多选项),
  4. 在打开的终端中输入:./go-file --port 80 --video ./path/to/video

注意:

  1. 如果主机有多个 ip 地址,请使用 host 参数指定一个其他设备可访问的 ip 地址,如:go-file.exe --host xxx.xxx.xxx.xxx,否则二维码将生成错误。
  2. 默认配置下访客可以上传和下载文件,可在 管理 -> 系统设置 中修改权限配置。
  3. 如果是公网部署,务必记得第一时间更改默认密码!

演示

在线试用(用户名为 admin,密码为 password): https://go-file.herokuapp.com/

其他

项目地址: https://github.com/songquanpeng/go-file

在线演示: https://go-file.herokuapp.com/ (默认用户名 admin,密码 123456)

4605 次点击
所在节点    分享创造
32 条回复
gesse
2022-07-11 08:36:00 +08:00
非常牛! 感觉可使用的场景很多。
linglin0924
2022-07-11 09:42:57 +08:00
👍,已经收藏了。前端用什么写的。
JusticeIsHere
2022-07-11 09:49:24 +08:00
@linglin0924 CSS 库用的是 Bulma ,自己改了下部分样式,其他纯原生 JavaScript
7654
2022-07-11 10:11:06 +08:00
1 、从 /explorer?path=文件选项下载文件名称都为 explorer ,不是真是文件名
2 、图床没有文件列表,管理不方便
3 、readme 里的初始密码 password ,实际 123456 ,文档未更新
keepeye
2022-07-11 10:23:31 +08:00
看样子只能在服务器上跑
keepeye
2022-07-11 10:24:30 +08:00
本地跑想要分享需要弄个 frp 之类的,还是需要一台服务器
JusticeIsHere
2022-07-11 10:35:36 +08:00
@7654 第一个是 bug ,感谢反馈,之前不是这样的,今晚修复;
第二个之后管理页面会加;第三个已经改了。非常感谢!
JusticeIsHere
2022-07-11 10:37:34 +08:00
@keepeye 局域网下分享也是 Okay 的,实测分享 100GB 以上的文件也没问题
JusticeIsHere
2022-07-11 10:39:52 +08:00
@7654 我刚刚试了下第一个没能复现,请问你用的浏览器以及版本?
xichuhanguguan
2022-07-11 11:24:50 +08:00
演示地址打开无需登录可上传文件,删除提示需要登录。登录提示用户名或密码错误,或者该用户已被封禁。
kuaner
2022-07-11 11:25:59 +08:00
很棒,希望有个 docker 版本,放在 nas 上用
JusticeIsHere
2022-07-11 11:29:33 +08:00
@xichuhanguguan 密码和权限可能被人改了
JusticeIsHere
2022-07-11 11:30:17 +08:00
@kuaner 好建议,之后可以折腾一下
pcmid
2022-07-11 12:35:15 +08:00
太棒了,请问有支持 s3 做后端存储的打算么
JusticeIsHere
2022-07-11 13:16:58 +08:00
@7654 我知道了,你点的是文件名,而不是后面的下载按钮,直接点文件名原意是在浏览器中直接打开,如果浏览器不支持这个文件格式,就会下载,此时文件名确实是错的。
JusticeIsHere
2022-07-11 13:17:35 +08:00
@pcmid 有的,之后还打算做成网盘,支持 WebDAV
leafof
2022-07-11 13:36:22 +08:00
类似的工具有很多个了吧,似乎 Plain text 工具还没有看到过
mekingname
2022-07-11 13:39:29 +08:00
不要用 gotemplate 。

用 gin-vue-admin 重构吧。
JusticeIsHere
2022-07-11 14:03:40 +08:00
@leafof 确实,但是这个还是有一些差异化的功能的,我不打算只是做一个文件列表
JusticeIsHere
2022-07-11 14:05:44 +08:00
@mekingname gotemplate 写起来真难搞,我想加个全局变量都难

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

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

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

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

© 2021 V2EX