自托管文件分享工具:Docker 部署 + admin token 鉴权设计

举报
樊先生 发表于 2026/10/29 15:54:48 2026/10/29
【摘要】 网盘绑定太重、公开分享又怕失控,我做了一个自托管的文件分享工具:数据在自己机器,分享链接自己管控。本文讲它的部署(Docker)、鉴权设计(admin token 与分享链接分离),以及从早期版本到重构版的演进思考。

一、为什么不直接用网盘

  • 数据要在自己服务器,不进第三方;
  • 分享要可管控:有效期、提取码、可撤销;
  • 部署简单,一个二进制 + Docker 即可。

技术用 Go 写,单二进制,天然适合自托管。

二、鉴权设计:管理员与访客分离

这是这类工具最容易做错的地方——把"管理后台"和"分享访问"混一个权限。我的设计:

  • admin token:管理员令牌,登录后台、管理文件 / 用户用,权限最高;
  • 分享链接:对外分发,可带有效期和提取码,只能访问被授权的那一份,不能摸后台;
  • 两者完全隔离,分享泄露也不会危及管理面。

⚠️ 默认口令 / 密钥必须改。交付和上线前,把 admin 默认凭证、jwt secret 等全部改成随机强值,别留出厂设置。

三、Docker 部署

docker compose up -d      # 服务 + 数据卷持久化

数据卷挂出来,容器重建文件不丢;端口只在必要时暴露,管理面不要对公网裸开。

四、从 v1 到 v2 的演进

早期版本把逻辑堆在一起,接口和目录都乱;v2 做了重构:

  • API 文档化(接口单独成文,前端 / 客户端对接有据);
  • 目录与模块分层清晰,便于加协议 / 加功能;
  • 构建产物规范,发布清单可控。

重构的代价是一次性整理成本,收益是后面加功能不再"牵一发动全身"。

五、给做自托管工具的建议

  1. 管理面与分享面权限必须分离;
  2. 默认凭证必须能在部署时强制改;
  3. 数据卷持久化,别让容器一删文件没了;
  4. 分享链接默认短有效期 + 可撤销,降低泄露影响面。

【总结】 自托管分享工具的卖点就是"数据权和管控权回到自己手里"。把鉴权边界划清楚,它比网盘更安心,比裸 FTP 更体面。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。