字节笔记本
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 插件,形成了完整的文件分享生态。
核心特性
零配置开箱即用
- 单文件部署:无需安装依赖环境,仅一个可执行文件即可运行
- 双击启动:直接双击可执行文件即可开始使用,无需命令行操作
- 自动打开浏览器:启动后自动在浏览器中打开管理界面
- 默认端口:默认使用 3000 端口,可通过参数自定义
文件分享
- 文件上传:支持拖拽上传和拷贝上传,支持同时上传多个文件
- 文件夹分享:可指定本地文件夹进行共享,浏览者可直接下载
- 二维码分享:提供二维码,移动端扫码即可下载文件
- 局域网满速:局域网内分享可直接跑满本地带宽
图床功能
- 粘贴上传:支持直接从剪贴板粘贴图片上传
- 图片上传 API:提供标准的图片上传 API 接口
- PicGo 插件:支持 PicGo 图床工具,搜索
gofile即可安装 - Typora 支持:可作为 Typora 的图片上传器使用
视频播放
- 在线视频播放:内置视频播放页面,可在其他设备上在线播放电脑上的视频
- 跨设备观影:轻松将本地视频资源通过浏览器分享到手机、平板等设备观看
权限与安全
- 用户管理:支持多用户系统,默认创建管理员账户
- 访问权限:允许对不同类型的用户设置文件访问权限限制
- 访问频率限制:支持访问速率控制(需配置 Redis)
- Token API 验证:支持 Token 认证,便于与其他系统整合
便捷工具
- 启动器:为不熟悉命令行的用户提供图形界面启动器
- CLI 工具:配套命令行工具,支持命令行上传文件和 P2P 模式分享
- Docker 部署:支持 Docker 一键部署,方便在服务器上运行
- 移动端适配:页面适配移动端,手机扫码即可访问
技术栈
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_STRING | Redis 连接字符串 | redis://default:redispw@localhost:49153 |
SQL_DSN | MySQL 数据源名称 | root:123456@tcp(localhost:3306)/gofile |
SQLITE_PATH | SQLite 数据库文件路径 | 默认为工作目录下的 go-file.db |
SESSION_SECRET | 会话密钥 | 默认随机生成 |
UPLOAD_PATH | 文件上传路径 | 默认为工作目录下的 upload 目录 |
安装指南
方式一:直接下载可执行文件(推荐)
- 前往 GitHub Releases 页面下载对应平台的可执行文件
- Windows 系统下载
.exe文件,macOS/Linux 下载对应平台的二进制文件 - 直接双击运行即可
方式二:使用启动器
推荐使用官方的 Go File 启动器,提供图形界面,免去命令行操作:
- 在项目 Wiki 中找到启动器下载链接
- 下载并安装启动器
- 通过图形界面配置参数并启动 Go File
方式三:Docker 部署
适用于服务器部署场景,一行命令即可完成:
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 开发环境:
git clone https://github.com/songquanpeng/go-file.git
cd go-file
go build快速开始
本地使用
- 下载对应平台的可执行文件
- 双击运行,程序会自动打开浏览器
- 首次启动自动创建管理员账户:
- 用户名:
admin - 密码:
123456
- 用户名:
- 登录后立即前往"管理" -> "账户管理"修改默认密码
- 点击右上角的"上传"按钮即可上传文件
- 支持拖拽上传和同时上传多个文件
局域网分享
- 启动 Go File 后,其他设备可通过局域网 IP 访问
- 页面会显示二维码,移动端扫码即可下载
- 局域网内传输速度可达本地带宽上限
文件夹共享
如果需要共享本地文件夹,通过命令行启动时添加 path 参数:
./go-file --path /path/to/shared/folder启动后,在导航栏点击"文件"即可浏览和下载共享文件夹中的内容。
视频在线播放
如果需要在线播放本地视频,添加 video 参数:
./go-file --video /path/to/videos启动后,在导航栏点击"视频"即可在线播放视频,可在手机、平板等其他设备上观看电脑上的视频资源。
API Token 认证
- 登录后前往个人账户管理页面生成 Token
- 在 API 请求中添加
Authorization头部 - 值格式为
YOUR_TOKEN或Bearer YOUR_TOKEN
使用示例
作为图床使用
Go File 内置图床功能,使用方式如下:
- 打开 Go File 页面,进入"图片"页面
- 直接粘贴剪贴板中的图片或点击上传
- 上传完成后获取图片链接
- 通过 API 上传图片,可配合 PicGo 插件使用(插件搜索
gofile)
作为 Typora 图片上传器
Go File 提供了 Typora 上传脚本,配置方式如下:
- 使用项目中的
./script/typora.py脚本 - 在 Typora 偏好设置中配置图片上传服务
- 填入 Go File 的 API 地址和 Token
- 之后在 Typora 中粘贴图片将自动上传到 Go File
使用 CLI 工具
Go File 提供了配套的 CLI 工具,支持以下功能:
- 命令行上传文件到 Go File 服务
- P2P 模式文件分享(无需服务器中转)
- 详见项目 Wiki 中的 CLI 下载和使用教程
Docker 部署完整示例
以下是一个包含 MySQL 和 Redis 的完整 Docker 部署示例:
# 启动 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 用户可通过以下方式使用命令行参数:
- 打开 go-file 所在的文件夹
- 按住 Shift 并右键空白区域
- 选择"在此处打开 PowerShell"(Windows 11 需先点击"显示更多选项")
- 输入命令,例如:
./go-file --port 80 --video ./path/to/video
项目链接
- GitHub 仓库:https://github.com/songquanpeng/go-file
- 在线演示:https://go-file.onrender.com(用户名 admin / 密码 123456)
- Docker 镜像:
justsong/go-file - 启动器:项目 Wiki 中提供下载
- CLI 工具:项目 Wiki 中提供下载
- 许可证:GPL-3.0