字节笔记本

2026年3月22日

Go File - Go 语言轻量级文件分享系统

Go File 是一款基于 Go 语言开发的轻量级文件分享工具,仅需单个可执行文件即可开箱即用,支持局域网和公网文件分享,内置图床、视频播放页面和二维码扫描下载功能,在 GitHub 上已获得超过 4100 颗 Star,累计下载量超过 40 万次。

项目简介

Go File 由开发者 songquanpeng 开发和维护,是一款专注于"简单易用"的文件分享工具。项目的核心设计理念是零配置开箱即用:下载单个可执行文件,双击运行后自动打开浏览器,即可开始分享文件。这种极简的设计让即使是不熟悉命令行的用户也能快速上手。

Go File 的功能远不止简单的文件上传下载。它内置了图床功能,可以直接粘贴上传图片并提供图片上传 API;内置了视频播放页面,可以将本地视频在线播放到其他设备上,轻松实现跨设备观影体验。此外,Go File 还支持文件夹分享、拖拽上传、访问频率限制、Token API 验证等高级功能,满足个人和小团队的多种文件共享需求。

项目还贴心地为不熟悉命令行的用户制作了图形界面启动器(Go File Launcher),并提供了配套的 CLI 工具(支持 P2P 模式文件分享)和 PicGo 插件,形成了完整的文件分享生态。

核心特性

零配置开箱即用

  1. 单文件部署:无需安装依赖环境,仅一个可执行文件即可运行
  2. 双击启动:直接双击可执行文件即可开始使用,无需命令行操作
  3. 自动打开浏览器:启动后自动在浏览器中打开管理界面
  4. 默认端口:默认使用 3000 端口,可通过参数自定义

文件分享

  1. 文件上传:支持拖拽上传和拷贝上传,支持同时上传多个文件
  2. 文件夹分享:可指定本地文件夹进行共享,浏览者可直接下载
  3. 二维码分享:提供二维码,移动端扫码即可下载文件
  4. 局域网满速:局域网内分享可直接跑满本地带宽

图床功能

  1. 粘贴上传:支持直接从剪贴板粘贴图片上传
  2. 图片上传 API:提供标准的图片上传 API 接口
  3. PicGo 插件:支持 PicGo 图床工具,搜索 gofile 即可安装
  4. Typora 支持:可作为 Typora 的图片上传器使用

视频播放

  1. 在线视频播放:内置视频播放页面,可在其他设备上在线播放电脑上的视频
  2. 跨设备观影:轻松将本地视频资源通过浏览器分享到手机、平板等设备观看

权限与安全

  1. 用户管理:支持多用户系统,默认创建管理员账户
  2. 访问权限:允许对不同类型的用户设置文件访问权限限制
  3. 访问频率限制:支持访问速率控制(需配置 Redis)
  4. Token API 验证:支持 Token 认证,便于与其他系统整合

便捷工具

  1. 启动器:为不熟悉命令行的用户提供图形界面启动器
  2. CLI 工具:配套命令行工具,支持命令行上传文件和 P2P 模式分享
  3. Docker 部署:支持 Docker 一键部署,方便在服务器上运行
  4. 移动端适配:页面适配移动端,手机扫码即可访问

技术栈

Go File 的技术选型体现了 Go 语言的"编译即部署"优势:

  • 开发语言:Go(GoReportCard 评级 A+)
  • 部署方式:单可执行文件(静态编译,无运行时依赖)
  • 默认数据库:SQLite(零配置,数据存储在工作目录的 go-file.db)
  • 可选数据库:MySQL(通过环境变量 SQL_DSN 配置)
  • 可选缓存:Redis(通过环境变量 REDIS_CONN_STRING 配置,用于频率限制)
  • 许可证:GPL-3.0

运行参数

参数说明示例
port指定服务端口--port 80
path指定共享文件夹路径--path ./shared
video指定视频资源路径--video ./videos
host指定监听 IP 地址--host 192.168.1.100
no-browser禁止自动打开浏览器--no-browser true

环境变量

环境变量说明示例
REDIS_CONN_STRINGRedis 连接字符串redis://default:redispw@localhost:49153
SQL_DSNMySQL 数据源名称root:123456@tcp(localhost:3306)/gofile
SQLITE_PATHSQLite 数据库文件路径默认为工作目录下的 go-file.db
SESSION_SECRET会话密钥默认随机生成
UPLOAD_PATH文件上传路径默认为工作目录下的 upload 目录

安装指南

方式一:直接下载可执行文件(推荐)

  1. 前往 GitHub Releases 页面下载对应平台的可执行文件
  2. Windows 系统下载 .exe 文件,macOS/Linux 下载对应平台的二进制文件
  3. 直接双击运行即可

方式二:使用启动器

推荐使用官方的 Go File 启动器,提供图形界面,免去命令行操作:

  1. 在项目 Wiki 中找到启动器下载链接
  2. 下载并安装启动器
  3. 通过图形界面配置参数并启动 Go File

方式三:Docker 部署

适用于服务器部署场景,一行命令即可完成:

bash
docker run -d --restart always \
  -p 3000:3000 \
  -e TZ=Asia/Shanghai \
  -v /home/ubuntu/data/go-file:/data \
  justsong/go-file

数据将持久化到宿主机的 /home/ubuntu/data/go-file 目录。

方式四:从源码编译

如果需要从源码编译,需要安装 Go 开发环境:

bash
git clone https://github.com/songquanpeng/go-file.git
cd go-file
go build

快速开始

本地使用

  1. 下载对应平台的可执行文件
  2. 双击运行,程序会自动打开浏览器
  3. 首次启动自动创建管理员账户:
    • 用户名:admin
    • 密码:123456
  4. 登录后立即前往"管理" -> "账户管理"修改默认密码
  5. 点击右上角的"上传"按钮即可上传文件
  6. 支持拖拽上传和同时上传多个文件

局域网分享

  1. 启动 Go File 后,其他设备可通过局域网 IP 访问
  2. 页面会显示二维码,移动端扫码即可下载
  3. 局域网内传输速度可达本地带宽上限

文件夹共享

如果需要共享本地文件夹,通过命令行启动时添加 path 参数:

bash
./go-file --path /path/to/shared/folder

启动后,在导航栏点击"文件"即可浏览和下载共享文件夹中的内容。

视频在线播放

如果需要在线播放本地视频,添加 video 参数:

bash
./go-file --video /path/to/videos

启动后,在导航栏点击"视频"即可在线播放视频,可在手机、平板等其他设备上观看电脑上的视频资源。

API Token 认证

  1. 登录后前往个人账户管理页面生成 Token
  2. 在 API 请求中添加 Authorization 头部
  3. 值格式为 YOUR_TOKENBearer YOUR_TOKEN

使用示例

作为图床使用

Go File 内置图床功能,使用方式如下:

  1. 打开 Go File 页面,进入"图片"页面
  2. 直接粘贴剪贴板中的图片或点击上传
  3. 上传完成后获取图片链接
  4. 通过 API 上传图片,可配合 PicGo 插件使用(插件搜索 gofile

作为 Typora 图片上传器

Go File 提供了 Typora 上传脚本,配置方式如下:

  1. 使用项目中的 ./script/typora.py 脚本
  2. 在 Typora 偏好设置中配置图片上传服务
  3. 填入 Go File 的 API 地址和 Token
  4. 之后在 Typora 中粘贴图片将自动上传到 Go File

使用 CLI 工具

Go File 提供了配套的 CLI 工具,支持以下功能:

  1. 命令行上传文件到 Go File 服务
  2. P2P 模式文件分享(无需服务器中转)
  3. 详见项目 Wiki 中的 CLI 下载和使用教程

Docker 部署完整示例

以下是一个包含 MySQL 和 Redis 的完整 Docker 部署示例:

bash
# 启动 MySQL
docker run -d --name go-file-mysql \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -e MYSQL_DATABASE=gofile \
  mysql:8.0

# 启动 Go File
docker run -d --name go-file \
  --link go-file-mysql:mysql \
  -p 3000:3000 \
  -e TZ=Asia/Shanghai \
  -e SQL_DSN=root:123456@tcp(mysql:3306)/gofile \
  -v /data/go-file:/data \
  justsong/go-file

命令行参数组合

Windows 用户可通过以下方式使用命令行参数:

  1. 打开 go-file 所在的文件夹
  2. 按住 Shift 并右键空白区域
  3. 选择"在此处打开 PowerShell"(Windows 11 需先点击"显示更多选项")
  4. 输入命令,例如:./go-file --port 80 --video ./path/to/video

项目链接

分享: