V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
JustSong
V2EX  ›  分享创造

分享一个便捷的文件分享工具(基于 Go)

  •  
  •   JustSong ·
    songquanpeng · 2021-02-08 17:37:21 +08:00 · 2697 次点击
    这是一个创建于 1385 天前的主题,其中的信息可能已经有所发展或是发生改变。

    描述

    文件分享工具,可用于局域网内分享文件,直接跑满本地带宽。

    在线预览: https://go-file.herokuapp.com/

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

    特点

    1. 无需配置环境,仅单个可执行文件,直接双击即可开始使用。
    2. 自动打开浏览器,分享文件快人一步。
    3. 提供二维码,可供移动端扫描下载文件,告别手动输入文件(搭配手机上的视频播放器如 MX Player 可以实现扫码直接看电脑上已上传的视频)。

    使用方法

    直接双击即可使用,默认端口为 3000,默认的 token (用于删除文件时验证身份)为 token

    如果需要修改端口,加参数即可:./go-file.exe -port 80 -token private

    演示

    desktop mobile

    其他

    Node.js 版本在此,已不再维护。

    请使用这里介绍的 Go 版本: https://github.com/songquanpeng/go-file

    25 条回复    2021-02-10 08:03:08 +08:00
    XYxe
        1
    XYxe  
       2021-02-08 18:00:21 +08:00   ❤️ 1
    $ ./go-file
    2021/02/08 18:00:03 Binary was compiled with 'CGO_ENABLED=0', go-sqlite3 requires cgo to work. This is a stub

    Mac 用不了
    JustSong
        2
    JustSong  
    OP
       2021-02-08 18:11:46 +08:00
    @XYxe 额,我没办法在 Mac 上测试
    JustSong
        3
    JustSong  
    OP
       2021-02-08 18:21:48 +08:00
    @XYxe 貌似在编译时设置环境变量 CGO_ENABLED=1 就可以了
    ferock
        4
    ferock  
       2021-02-08 18:39:51 +08:00   ❤️ 2
    一般我用:

    python3 -m http.server
    JustSong
        5
    JustSong  
    OP
       2021-02-08 19:03:42 +08:00
    @ferock 这个没办法上传文件呀,文件传输不只是桌面端到移动端,并且这个链接也需要手动输入,没有二维码可扫。把可执行文件放到一个 PATH 里的路径后,也可以很方便的在命令行启动。
    JustSong
        6
    JustSong  
    OP
       2021-02-08 19:04:54 +08:00
    @ferock 另外搜索也是个问题
    ferock
        7
    ferock  
       2021-02-08 21:13:10 +08:00 via iPhone   ❤️ 1
    @JustSong #5

    经常这样的需求,就走 nas 了,何况为啥要对方上传?那多不安全…你要新增文件直接 cp 过去就行了。

    至于二维码,草料就行了。
    至于那么多需求,zdir 的 docker 起一个人也行啊
    yeqizhang
        8
    yeqizhang  
       2021-02-08 21:31:04 +08:00 via Android   ❤️ 1
    mark 改天试试。对 go 写的小工具没有抵抗力……
    JustSong
        9
    JustSong  
    OP
       2021-02-08 21:53:02 +08:00
    @ferock 嗯,我设想的场景是局域网内偶尔快速分享一些文件,比如传课件到 iPad 上,手机发送大文件到电脑上,主要特点是便捷,开箱即用
    JustSong
        10
    JustSong  
    OP
       2021-02-08 22:05:58 +08:00
    @yeqizhang 我也是哈哈哈,之前用 Node.js 实现了一个版本,感觉太重了,因此又用 Go 重新实现了一下
    lovestudykid
        11
    lovestudykid  
       2021-02-08 23:22:02 +08:00
    这个放在公网上至少加个基本的认证吧,下载链接可以不需要认证
    JustSong
        12
    JustSong  
    OP
       2021-02-08 23:41:21 +08:00
    @lovestudykid 目前只有删除要认证,不建议部署到公网上,我为了保持工具的简洁且公网部署不符合我设想的应用场景因此就没在认证方面做过多考虑。
    lovestudykid
        13
    lovestudykid  
       2021-02-09 09:02:23 +08:00
    @JustSong 我想说那你干嘛放到 heroku,突然感觉这样意外的不错...没人用 30min 后就刷新了,如果有人一直在用就一直在。
    JustSong
        14
    JustSong  
    OP
       2021-02-09 09:31:32 +08:00 via Android
    @lovestudykid 只是为了演示,反正是白嫖,hhh
    wolong
        15
    wolong  
       2021-02-09 09:34:18 +08:00
    go 是不是比 node 好?我看好多这类小软件都是由 node 转 go 了
    JustSong
        16
    JustSong  
    OP
       2021-02-09 09:37:24 +08:00 via Android
    @wolong 是啊,编译好之后开箱即用,不需要配环境,开销也小很多
    xiozf
        17
    xiozf  
       2021-02-09 10:12:20 +08:00
    啊哈? lz 在哪分享过吗?打开项目发现已 star 。
    wolong
        18
    wolong  
       2021-02-09 10:47:11 +08:00
    @JustSong 看得我也想学 go 了,有好的教程推荐吗?纸质书或者电子版都可以。
    JustSong
        19
    JustSong  
    OP
       2021-02-09 10:58:12 +08:00
    @xiozf 哈哈哈,我记得之前在别人的帖子下发过 Node.js 版本的
    JustSong
        20
    JustSong  
    OP
       2021-02-09 10:59:20 +08:00
    wolong
        21
    wolong  
       2021-02-09 23:06:25 +08:00
    @JustSong 再问一下。我今晚学了一会 go,用来做 web 似乎也不难,好像还不需要 apache 之类的。我现在会 PHP,是不是用 go 开发 web 的话就不需要 apahce (或者 nginx )了?如果我要开机运行这个项目,是不是拖进“启动”文件夹就行?谢谢。
    JustSong
        22
    JustSong  
    OP
       2021-02-10 00:00:37 +08:00
    @wolong 1. 是的,不过我一般用 Nginx 反代; 2. Windows 下可以这样搞
    Y29tL2gwd2Fy
        23
    Y29tL2gwd2Fy  
       2021-02-10 04:44:39 +08:00 via Android
    wolong
        24
    wolong  
       2021-02-10 07:16:26 +08:00
    @JustSong 正式使用环境也可以直接用 go 的内置 http 服务吗?像 PHP 也内置了简单的 http 服务器,但是性能不行,只能用来测试用。我准备做一个 web 应用,局域网内使用,同时大概就 10 人左右使用。
    JustSong
        25
    JustSong  
    OP
       2021-02-10 08:03:08 +08:00 via Android
    @wolong Go 也只能使用内置的吧,毕竟不是脚本语言
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2813 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 11:48 · PVG 19:48 · LAX 03:48 · JFK 06:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.