{"id":13459390,"url":"https://github.com/songquanpeng/go-file","last_synced_at":"2025-04-14T20:45:24.093Z","repository":{"id":41501314,"uuid":"254016085","full_name":"songquanpeng/go-file","owner":"songquanpeng","description":"基于 Go 的文件分享工具，仅单可执行文件，开箱即用，内置图床和视频播放页面. File sharing tool based on Go.","archived":false,"fork":false,"pushed_at":"2025-03-13T00:33:22.000Z","size":578,"stargazers_count":1037,"open_issues_count":16,"forks_count":111,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-04-07T18:05:32.945Z","etag":null,"topics":["file-share","go-file","golang","lan-share"],"latest_commit_sha":null,"homepage":"https://go-file.onrender.com","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/songquanpeng.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":["https://iamazing.cn/page/reward"]}},"created_at":"2020-04-08T07:28:24.000Z","updated_at":"2025-04-07T12:52:17.000Z","dependencies_parsed_at":"2024-05-29T16:12:14.550Z","dependency_job_id":"308fb58c-3885-40e6-bad8-23851ab3ff72","html_url":"https://github.com/songquanpeng/go-file","commit_stats":{"total_commits":216,"total_committers":3,"mean_commits":72.0,"dds":0.1435185185185185,"last_synced_commit":"1fa9a4348f4d4b5708bd2393ea47edb20e36f3f6"},"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/songquanpeng%2Fgo-file","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/songquanpeng%2Fgo-file/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/songquanpeng%2Fgo-file/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/songquanpeng%2Fgo-file/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/songquanpeng","download_url":"https://codeload.github.com/songquanpeng/go-file/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248960474,"owners_count":21189984,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["file-share","go-file","golang","lan-share"],"created_at":"2024-07-31T09:01:20.058Z","updated_at":"2025-04-14T20:45:24.066Z","avatar_url":"https://github.com/songquanpeng.png","language":"HTML","funding_links":["https://iamazing.cn/page/reward"],"categories":["HTML","文件管理系统"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/songquanpeng/go-file\"\u003e\u003cimg src=\"https://user-images.githubusercontent.com/39998050/108494937-1a573e80-72e3-11eb-81c3-5545d7c2ed6e.jpg\" width=\"200\" height=\"200\" alt=\"go-file\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n# Go File\n\n_✨ 文件分享工具，仅单个可执行文件，开箱即用，可用于局域网内分享文件和文件夹，直接跑满本地带宽 ✨_  \n\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://raw.githubusercontent.com/songquanpeng/go-file/master/LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/license/songquanpeng/go-file?color=brightgreen\" alt=\"license\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/songquanpeng/go-file/releases/latest\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/v/release/songquanpeng/go-file?color=brightgreen\u0026include_prereleases\" alt=\"release\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/songquanpeng/go-file/releases/latest\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/downloads/songquanpeng/go-file/total?color=brightgreen\u0026include_prereleases\" alt=\"release\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://hub.docker.com/repository/docker/justsong/go-file\"\u003e\n    \u003cimg src=\"https://img.shields.io/docker/pulls/justsong/go-file?color=brightgreen\" alt=\"docker pull\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://goreportcard.com/report/github.com/songquanpeng/go-file\"\u003e\n  \u003cimg src=\"https://goreportcard.com/badge/github.com/songquanpeng/go-file\" alt=\"GoReportCard\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/songquanpeng/go-file/projects/1\"\u003e开发规划\u003c/a\u003e\n  ·\n  \u003ca href=\"https://github.com/songquanpeng/go-file/releases\"\u003e程序下载\u003c/a\u003e\n  ·\n  \u003ca href=\"https://github.com/songquanpeng/gofile-launcher\"\u003e启动器下载\u003c/a\u003e\n  ·\n  \u003ca href=\"https://github.com/songquanpeng/gofile-cli\"\u003eCLI 下载\u003c/a\u003e\n  ·\n  \u003ca href=\"https://iamazing.cn/page/LAN-SHARE-使用教程\"\u003e使用教程\u003c/a\u003e\n  ·\n  \u003ca href=\"#演示\"\u003e截图展示\u003c/a\u003e\n\u003c/p\u003e\n\n\u003e **Note**：推荐使用官方的 [Go File 启动器](https://github.com/songquanpeng/gofile-launcher)，免去命令行操作。\n\n## 特点\n1. 无需配置环境，仅单个可执行文件，**直接双击即可开始使用**。\n2. 自动打开浏览器，分享文件快人一步。\n3. 提供**二维码**，可供移动端扫描下载文件，告别手动输入链接。\n4. 支持**分享本地文件夹**。\n5. 适配移动端。\n6. 内置**图床**，支持直接粘贴上传图片，提供图片上传 API。\n7. 内置**视频播放**页面，可用于在其他设备上在线博客自己电脑上的视频，轻松跨设备在线看视频。\n8. 支持**拖拽上传，拷贝上传**。\n9. 允许对不同类型的用户设置文件访问权限限制。\n10. 访问频率限制。\n11. 支持 Token API 验证，便于与其他系统整合。\n12. 为不熟悉命令行的用户制作了**启动器**，[详见此处](https://github.com/songquanpeng/gofile-launcher)。\n13. **支持 PicGo**，插件搜索 `gofile` 即可安装，[详见此处](https://github.com/songquanpeng/picgo-plugin-gofile)。\n14. 配套 CLI 工具，支持命令行上传文件，支持 P2P 模式文件分享，[详见此处](https://github.com/songquanpeng/gofile-cli)。\n15. Docker 一键部署：`docker run -d --restart always -p 3000:3000 -e TZ=Asia/Shanghai -v /home/ubuntu/data/go-file:/data justsong/go-file`\n\n## 使用方法\n\u003e v0.3.3 以及之前版本的使用方法请[点击此处](https://github.com/songquanpeng/go-file/tree/52e8303e33e99bbcaf583d2d5a5bb0ec197bc676#使用方法)。\n\n直接双击即可使用，默认端口为 `3000`，程序在第一次启动时会自动创建管理员账户，用户名为 `admin`，密码为 `123456`，记得登录后到 `管理页面` 下的 `账户管理` 标签页中更改你的用户密码。\n\n之后程序将自动为你打开浏览器，点击右上角的 `上传` 按钮即可上传，支持拖放上传，支持同时上传多个文件。\n\n**进阶使用：**\n1. 如果要修改端口，启动时请指定 `port` 参数：`./go-file.exe --port 80`。\n2. 如果需要分享文件夹，启动时请指定 `path` 参数：`./go-file.exe --path ./this/is/a/path`，之后点击导航栏上的 `文件` 即可。\n3. 如果需要分享本地的视频资源，加 `video` 参数：`./go-file.exe --video ./this/is/a/path`，之后点击导航栏上的 `视频` 即可。\n4. 如果需要启用访问速率控制，需要在启动前设置 Redis 连接字符串环境变量 `REDIS_CONN_STRING`，例如：`redis://default:redispw@localhost:49153`。 \n5. 如果想使用 MySQL，需要先登录 MySQL 创建一个空的数据库 `gofile`，然后设置 `SQL_DSN` 环境变量即可，例如：`root:123456@tcp(localhost:3306)/gofile`。\n6. 修改默认的 SQLite 数据库文件的位置，请设置 `SQLITE_PATH` 环境变量，默认在工作目录下，名称为 `go-file.db`。\n7. 设置会话密钥（默认随机生成），请设置 `SESSION_SECRET` 环境变量。\n8. 设置文件上传路径（默认为工作目录下面的 `upload` 目录），请设置 `UPLOAD_PATH` 环境变量。\n9. 禁止自动打开浏览器，启动时请指定 `no-browser` 参数：`./go-file.exe --no-browser true`。\n10. 如果想要使用 Token 访问 API，请先前往个人账户管理页面生成 Token，之后在请求时加上 `Authorization` HTTP 头部，值为 `YOUR_TOKEN` 或者 `Bearer YOUR_TOKEN`。\n    + 例如作为 Typora 的 Image Uploader：[./script/typora.py](./script/typora.py)\n\n**如果你不知道怎么加参数：**\n1. 打开 go-file 所在的文件夹，\n2. 按住 shift 并右键空白区域，\n3. 选择`在此处打开 PowerShell`（如果是 Windows 11 的话则需要先点击`显示更多选项`），\n4. 在打开的终端中输入：`./go-file --port 80 --video ./path/to/video`\n\n建议直接使用[启动器](https://github.com/songquanpeng/gofile-launcher)。\n\n**使用 Docker 进行部署：**\n执行：`docker run -d --restart always -p 3000:3000 -e TZ=Asia/Shanghai -v /home/ubuntu/data/go-file:/data justsong/go-file`\n\n数据将会保存在宿主机的 `/home/ubuntu/data/go-file` 目录。\n\n**注意：**\n1. 如果主机有多个 ip 地址，请使用 host 参数指定一个其他设备可访问的 ip 地址，如：`go-file.exe --host xxx.xxx.xxx.xxx`，否则二维码将生成错误。\n2. 默认配置下访客可以上传和下载文件，可在 `管理` -\u003e `系统设置` 中修改权限配置。\n3. 如果是公网部署，务必记得第一时间更改默认密码！ \n\n## 演示\n在线试用（用户名为 `admin`，密码为 `123456`）：https://go-file.onrender.com\n\n注意，以下展示图片可能没有得到及时跟新。\n![index page](https://user-images.githubusercontent.com/39998050/178138784-2fc53a83-917d-4d2e-9aad-6c6c796bd9c8.png)\n![file page](https://user-images.githubusercontent.com/39998050/178138792-1d9256f2-2ada-43c4-b646-28a93a919596.png)\n![image page](https://user-images.githubusercontent.com/39998050/178138803-2a4da042-c29a-47c5-9e71-ebfac02cdf48.png)\n![video page](https://user-images.githubusercontent.com/39998050/177032588-8946abde-a8da-45a2-a389-c16dba9cea34.png)\n![setting page](https://user-images.githubusercontent.com/39998050/178138817-3f9caf95-ffc9-45fe-b2af-32c4a2e7b085.png)\n![setting page 2](https://user-images.githubusercontent.com/39998050/178138833-d10e6f5a-aeea-4af3-8ae1-c0b3ab1d92f7.png)\n\n[启动器](https://github.com/songquanpeng/gofile-launcher)截图：\n\n![launcher](https://raw.githubusercontent.com/songquanpeng/gofile-launcher/main/demo.png)\n\n## 其他\n[Node.js 版本在此](https://github.com/songquanpeng/lan-share)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsongquanpeng%2Fgo-file","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsongquanpeng%2Fgo-file","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsongquanpeng%2Fgo-file/lists"}