自托管文件分享工具:Docker 部署 + admin token 鉴权设计
【摘要】 网盘绑定太重、公开分享又怕失控,我做了一个自托管的文件分享工具:数据在自己机器,分享链接自己管控。本文讲它的部署(Docker)、鉴权设计(admin token 与分享链接分离),以及从早期版本到重构版的演进思考。
一、为什么不直接用网盘
- 数据要在自己服务器,不进第三方;
- 分享要可管控:有效期、提取码、可撤销;
- 部署简单,一个二进制 + Docker 即可。
技术用 Go 写,单二进制,天然适合自托管。
二、鉴权设计:管理员与访客分离
这是这类工具最容易做错的地方——把"管理后台"和"分享访问"混一个权限。我的设计:
- admin token:管理员令牌,登录后台、管理文件 / 用户用,权限最高;
- 分享链接:对外分发,可带有效期和提取码,只能访问被授权的那一份,不能摸后台;
- 两者完全隔离,分享泄露也不会危及管理面。
⚠️ 默认口令 / 密钥必须改。交付和上线前,把 admin 默认凭证、jwt secret 等全部改成随机强值,别留出厂设置。
三、Docker 部署
docker compose up -d # 服务 + 数据卷持久化
数据卷挂出来,容器重建文件不丢;端口只在必要时暴露,管理面不要对公网裸开。
四、从 v1 到 v2 的演进
早期版本把逻辑堆在一起,接口和目录都乱;v2 做了重构:
- API 文档化(接口单独成文,前端 / 客户端对接有据);
- 目录与模块分层清晰,便于加协议 / 加功能;
- 构建产物规范,发布清单可控。
重构的代价是一次性整理成本,收益是后面加功能不再"牵一发动全身"。
五、给做自托管工具的建议
- 管理面与分享面权限必须分离;
- 默认凭证必须能在部署时强制改;
- 数据卷持久化,别让容器一删文件没了;
- 分享链接默认短有效期 + 可撤销,降低泄露影响面。
【总结】 自托管分享工具的卖点就是"数据权和管控权回到自己手里"。把鉴权边界划清楚,它比网盘更安心,比裸 FTP 更体面。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)