Go File: 基于 Go 的文件分享工具 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
JusticeIsHere
V2EX    分享创造

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

  •  
  •   JusticeIsHere 2022-07-11 08:23:06 +08:00 5171 次点击
    这是一个创建于 1266 天前的主题,其中的信息可能已经有所发展或是发生改变。

    概述

    stars license release release GoReportCard

    基于 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/

    index page file page image page video page setting page setting page 2

    其他

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

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

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

    用 gin-vue-admin 重构吧。
    JusticeIsHere
        19
    JusticeIsHere  
    OP
       2022-07-11 14:03:40 +08:00 via Android
    @leafof 确实,但是这个还是有一些差异化的功能的,我不打算只是做一个文件列表
    JusticeIsHere
        20
    JusticeIsHere  
    OP
       2022-07-11 14:05:44 +08:00 via Android
    @mekingname gotemplate 写起来真难搞,我想加个全局变量都难
    7654
        21
    7654  
       2022-07-11 14:57:09 +08:00
    @JusticeIsHere 确实是这样
    有个疑问,为什么要分首页 upload 及 explorer 两种类型呢
    upload 可以有直链+描述,explorer 功能简陋还要特别指定路径
    JusticeIsHere
        22
    JusticeIsHere  
    OP
       2022-07-11 15:02:13 +08:00 via Android
    @7654 explorer 用于分享已有的文件夹,是不需要上传的,首页那个必须一个一个上传。实际上 explorer 视图可以在启动时指定其他路径,未指定的情况下和首页那个共享路径
    7654
        23
    7654  
       2022-07-11 15:06:39 +08:00
    @JusticeIsHere 那可以在 explorer 里增加备注功能,用于首页显示,这样是不是就不用一个个上传了
    pcmid
        24
    pcmid  
       2022-07-11 21:55:30 +08:00
    @JusticeIsHere 期待一下, 等支持我来试试
    blankmiss
        25
    blankmiss  
       2022-07-12 13:10:42 +08:00
    支持多线程下载吗
    JusticeIsHere
        26
    JusticeIsHere  
    OP
       2022-07-12 16:20:26 +08:00 via Android
    @blankmiss go 的 http 实现是支持范围下载的,所以断点续传和多线程下载都应该没啥问题才对
    mlhadoop
        27
    mlhadoop  
       2022-11-22 20:37:34 +08:00
    支持 s3 协议不
    JusticeIsHere
        28
    JusticeIsHere  
    OP
       2022-11-26 20:03:28 +08:00   1
    @mlhadoop 暂时不支持,目前正打算全部重构,之后会考虑的
    mlhadoop
        29
    mlhadoop  
       2022-11-26 20:05:24 +08:00
    @JusticeIsHere 谢谢; 发布的时候还请 @下我;
    JusticeIsHere
        30
    JusticeIsHere  
    OP
       2022-11-26 20:15:19 +08:00
    @mlhadoop 好的
    vonsy
        31
    vonsy  
       2022-12-02 17:21:55 +08:00
    @JusticeIsHere
    上传了一个 50G 的 tar.gz 文件,50G 已经上传完成了,浏览器显示处理中,一会就停止了,没有文件上传记录,服务器 upload 下创建了 17G 文件.
    最后是 curl u name:passwd -T file.tar.gz ftp://ip:port/ 上传到 ftp
    JusticeIsHere
        32
    JusticeIsHere  
    OP
       2022-12-12 11:46:15 +08:00
    @vonsy 感谢反馈,我调查一下。另外还是推荐用 GitHub Issue 来反馈问题。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2602 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 36ms UTC 06:18 PVG 14:18 LAX 22:18 JFK 01:18
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86