Gokapi 2.2.4 介绍与选型指南

Gokapi 轻量一次性文件分享服务器全解:核心架构、过期/一次性/E2E 加密/S3 兼容存储/REST API 特性拆解,与 PsiTransfer、Plik、Sharry、Uguu、copyparty 的量化选型对比。

GokapiGokapi文件服务文件共享Go2026/10/26

Gokapi 2.2.4 介绍与选型指南

目标:读完本篇,你将能回答三个问题——Gokapi 是什么、它能解决什么问题、以及在同类一次性文件分享工具(PsiTransfer、Plik、Sharry、Uguu、copyparty)中如何选型。全文数据均来自 Gokapi 官方仓库与文档的联网溯源(检索日期:2026-10-26),不含本地实测结论;需要动手部署的读者可直接跳转同专栏的安装篇与配置篇。

一、软件概述

1.1 项目定位

Gokapi 是一个由 Go 语言编写的轻量级一次性文件分享服务器(one-time file sharing server),主打"给文件生成带过期策略的分享链接",常被用作 Firefox Send 的自托管替代方案。项目由 Forceu 维护,采用 AGPL-3.0 开源协议(来源:GitHub 仓库 README,检索日期 2026-10-26)。

版本检索(检索日期 2026-10-26,来源:GitHub Releases):

项目值
最新稳定版本v2.2.4
GitHub 星数约 2.9k(shields.io 实时徽章)
开源协议AGPL-3.0
实现语言Go
官方支持平台Linux、macOS、Windows
官方文档站https://gokapi.readthedocs.io

1.2 名词解释

  • 一次性分享链接:链接被下载次数达到设定值或超过有效期后立即失效,服务端自动删除关联文件,避免"链接外泄后文件被无限扩散"。
  • 端到端加密(E2EE,End-to-End Encryption):文件在上传方完成加密,服务端仅存储密文、不具备解密能力,解密密钥只存在于持有密码的浏览器端。
  • 对象存储(S3,Simple Storage Service):AWS 推出的对象存储接口规范,现已形成事实标准;MinIO、Backblaze B2 等均提供 S3 兼容接口。
  • OIDC(OpenID Connect):基于 OAuth 2.0 的身份认证协议,可对接 Authelia、Keycloak 等统一身份平台。

1.3 版本演进要点

Gokapi v2 相比 v1 有两处影响使用的结构性变化,选型与部署前必须知晓:

  1. 默认服务端口变更为 53842(v1.x 时代为 5384),首次启动的安装向导监听该端口;
  2. 管理界面改为"会话 + 短期令牌"双重鉴权,管理页的文件操作需先换取带权限位的令牌,公开 REST API 的鉴权方式也随之调整。

二、核心架构

2.1 组件构成

Gokapi 采用典型的单二进制分层架构,无需外部数据库即可运行:

层次组件说明
接入层内置 Go Web 服务器同时承载管理后台、下载页、REST API
业务层分享/加密/限次/过期引擎下载计数、过期清理、链接失效判定
存储层本地文件系统 或 S3 兼容存储通过预签名 URL 或代理方式读写
元数据层SQLite(默认)或 Redis存储文件元数据、用户、会话、API 密钥

这种"单二进制 + SQLite + 本地盘"的最小组合,使 Gokapi 的最低资源需求仅为 1 核 CPU、256 MB 内存、100 MB 存储(来源:官方 README System Requirements,检索日期 2026-10-26)。

2.2 分享生命周期

一次典型的 Gokapi 分享流程为:上传文件 → 生成分享链接(下载页 URL 与直接下载 URL 两种形态)→ 访客访问下载页 → 下载计数递减 → 计数归零或到达过期时间后,文件本体与元数据被清理,原链接变为错误页。整个链条无需注册账号即可面向访客完成,管理员仅在上传端需要认证。

三、功能特性

3.1 特性清单

以下特性列表来自官方仓库 README(检索日期 2026-10-26):

  • 过期分享:按下载次数或天数自动失效并删除文件;
  • 用户管理与角色权限:细粒度权限控制,可限制仅注册用户上传;
  • 文件请求(File Requests):生成一个外部可上传的 URL,访客上传的文件仅该 URL 创建者可见;
  • 文件去重:内容相同的文件在服务端仅占一份空间;
  • 云存储支持:AWS S3 或 S3 兼容服务(如 Backblaze B2);
  • 内置加密:包含端到端加密上传;
  • OIDC 支持:对接 Authelia、Keycloak 等身份提供方;
  • REST API:面向自动化与系统集成的完整接口;
  • 可定制 UI:支持自定义 CSS 与 JavaScript。

3.2 加密体系

Gokapi v2 的安装向导提供 6 个加密等级(编号 0-5),覆盖三类形态:不加密;服务端加密(密钥保存在服务器,下载时透明解密);端到端加密(服务端只存密文,下载时由浏览器 JavaScript 解密)。其中端到端模式下,文件的直接下载与热链(hotlink)能力被禁用,只能通过带解密的下载页访问。

3.3 管理与自动化能力

  • 管理后台:上传、改期、删除、生成上传请求、管理用户与 API 密钥;
  • REST API:文件列表/详情/修改/删除、密钥管理、会话令牌;
  • 命令行工具:安装为系统服务、迁移数据库(SQLite 与 Redis 互转)、重置管理员密码等维护能力;
  • 反向代理友好:内置 WebSocket 与 HTTPS 透传配置项,可置于 Nginx/Caddy 之后。

四、快速开始

以下为官方仓库 README「Getting Started」与文档站的公开部署口径(检索日期 2026-10-26),供选型评估;完整的从零部署、系统服务托管与排障记录,见同专栏安装篇。

官方提供预编译的 Linux 发行包,最小启动路径为:

  1. 从 GitHub Releases 下载对应架构的压缩包(如 gokapi-2.2.4_linux-amd64.zip),解压得到单个 gokapi 可执行文件;
  2. 将其安装到系统路径(例如 /usr/local/bin/gokapi);
  3. 以服务方式或直接运行 gokapi,首次启动会自动进入安装向导;
  4. 在向导中设定管理端口、管理员账号密码、存储类型与加密等级;
  5. 向导保存后服务即进入运行状态,浏览器访问管理地址开始上传分享。

v2.2.4 默认监听端口为 53842,首次部署时放行防火墙该端口即可访问向导与后台。

五、适用场景与限制

5.1 典型适用场景

场景适配理由
运维/开发团队对外交付补丁、安装包一次性链接 + 次数限制,防外传
客户索取日志、抓包等"回传文件"文件请求功能提供访客上传入口
合规敏感文件外发端到端加密,服务端无私钥
内部工具集成REST API 自动化生成/回收分享

5.2 已知限制

  • 单机定位:无内置集群与多节点同步,容量受单机磁盘或所接对象存储约束;
  • 管理侧认证粒度较细但角色模型简单,不适合作为企业级网盘使用;
  • AGPL-3.0 协议对二次开发后的网络服务场景有开源义务,商业闭源集成需评估合规。

六、同类选型对比

6.1 候选产品一览

选型池选择与 Gokapi 同赛道(临时/一次性文件分享、可自托管)的五个代表性项目。以下信息均为各项目官方仓库公开描述(检索日期 2026-10-26):

项目语言协议定位一句话
Gokapi 2.2.4GoAGPL-3.0一次性文件分享服务器(Firefox Send 替代)
PsiTransfer 2.xNode.jsMIT带大文件流式上传的简单分享服务
Plik 1.xGoApache-2.0可扩展的临时文件上传平台(对象存储多后端)
Sharry 2.xScalaGPL-3.0面向"我给一组文件、你凭口令来取"的分享服务
Uguu 1.xPHPMIT极简临时文件托管(小时级自动过期)
copyparty 1.xPythonMIT多协议媒体服务器,附带上传与分享能力

6.2 一次性分享特性矩阵

矩阵依据为各项目官方文档/README 公开特性(检索日期 2026-10-26),"✓/✗" 表示官方明确具备/未提供:

特性GokapiPsiTransferPlikSharryUguucopyparty
一次性下载链接(用后即焚)✓✓✓✗(按时间过期)✗(按时间过期)✓(可配置)
按下载次数过期✓✓✓✗✗✓
按天数过期✓✓✓✓✓✓
链接密码保护✓✓✓✓✗✓
端到端加密(服务端无私钥)✓✗✓(客户端加密)✗✗✓(可选)
服务端存储可外接 S3✓✗(本地/流式)✓✗(本地盘)✗✗(本地盘为主)
访客上传(文件请求/公开上传页)✓✓✓✓✓✓
用户体系与角色权限✓✗✗(匿名为主)✓✗✓(多用户目录)
REST API✓有限✓✓✗(仅 CLI)✓
内置数据库(无需外部依赖)✓(SQLite)✓(SQLite)✓(SQLite)✓(内置 H2)✓(无数据库)✓
单文件部署(免运行时)✓(Go 二进制)✗(需 Node.js)✓(Go 二进制)✗(需 JVM)✗(需 PHP)✗(需 Python)
最低内存需求256 MB~512 MB(Node.js)128 MB 级1 GB 级(JVM)极低极低

6.3 选型结论

  • 追求"链接用后即焚 + E2E + S3 归档 + API 自动化"的均衡:Gokapi 是唯一六项全占的候选,且单二进制、256 MB 内存即可跑,运维面最窄;
  • 只需要极简的一次性大文件中转、无用户诉求:PsiTransfer 的流式上传对超大文件更友好,但无服务端加密与 S3 外接;
  • 已有对象存储、想把临时文件全部落到 S3:Plik 的多后端扩展性更强,但缺少用户体系与"文件请求"这类收件场景;
  • 重"口令取件"的协作式分享:Sharry 体验完整,但一次性下载语义弱(过期以时间为主)且 JVM 栈偏重;
  • 纯临时中转、几小时后自动清空的匿名场景:Uguu 最轻,但无加密、无账号、无 API;
  • 同时要媒体库 + 上传分享的家用服务器:copyparty 功能最杂糅,分享是其能力子集,反着选型(要分享为主)不如 Gokapi 专注。

七、参考链接