集成 S3 存储、反向分享与病毒扫描的安全文件分享平台
Pingvin Share X 作为平台主体承载分享/到期/反向分享等业务流;S3 Buckets 提供对象存储;ClamAV 负责上传文件安全扫描;Keycloak 提供高级身份认证。
✓ 组件齐全,可对接企业级认证✓ 支持 ClamAV 上传安全扫描 ✕ 组件多,部署复杂度较高✕ 依赖外部 Keycloak 与 S3
方案简介
Pingvin Share X 是一份从 Pingvin Share 分叉而来的自托管文件分享平台,定位偏向企业或团队内部的「可控文件交换」场景。它在原版基础上加入了反向分享、链接过期、S3 后端、对接 ClamAV 进行病毒扫描、以及通过 Keycloak 等提供的高级身份认证等能力。
适合以下用户:
- 希望在自有基础设施上提供一份带登录、可过期、可追踪的临时文件分享服务;
- 已使用或愿意部署 Keycloak 做统一 SSO 的组织;
- 需要在上载环节做病毒/恶意文件拦截的团队;
- 希望把数据放在自有 S3 兼容对象存储中,而非服务进程本地磁盘的运维者。
亮点与能力
根据材料原文摘录,Pingvin Share X 具备以下能力:
- 登录与用户体系:通过 advanced authentication 提供登录控制能力。
- 反向分享(Reverse Shares):允许接收方向发送方投递文件。
- 分享链接过期(Share Expiry):可配置到期时间,过期后自动失效。
- S3 Buckets 后端:文件可直接落到 S3 兼容对象存储桶中,便于容量扩展与跨节点共享。
- ClamAV 安全扫描:上传时调用 ClamAV 进行病毒/恶意文件检测。
- Keycloak 集成:可对接 Keycloak 实现统一身份认证。
材料中给出的项目标签为 BSD-2-Clause Docker/Nodejs,说明其以 Docker 容器 + Node.js 形态分发。
组成与分工
- Pingvin Share X:平台主体,提供 Web UI、上传/下载/分享、反向分享与过期等业务逻辑(
Docker/Nodejs)。 - S3 Buckets:对象存储后端,承载用户上传的文件实体;可使用 MinIO、SeaweedFS、ZOT OCI Registry 等 S3 兼容方案,或公有云 S3。
- ClamAV:开源杀毒引擎,Pingvin Share X 调用其在上载环节做安全扫描。
- Keycloak:身份与访问管理服务,Pingvin Share X 通过 advanced authentication 对接其完成 SSO/用户认证。
注意事项与常见问题
- 部署栈较长:需同时维护 Pingvin Share X、S3、ClamAV、Keycloak,运维成本显著高于单进程文件分享服务。
- 材料中给出的授权与运行时标签为
BSD-2-ClauseDocker/Nodejs,实际配置需结合上游仓库 README 进行。 - 当使用 S3 作为后端时,需保证 Pingvin Share X 节点与 S3 之间的网络可达性与凭据安全。
优缺点
- ✓ 组件齐全,可对接企业级认证
- ✓ 支持 ClamAV 上传安全扫描
- ✕ 组件多,部署复杂度较高
- ✕ 依赖外部 Keycloak 与 S3
出处
本方案挖掘自开源项目 awesome-selfhosted/awesome-selfhosted,方案内容与实施命令均来自其 README 原文。