网盘开发(S3 对象存储网盘)
本项目面向企业内部文件分发与外部分享场景,解决本地磁盘网盘难以弹性扩容、分享入口缺少门禁的问题。目标是基于 Node.js 从零构建一套管理端与访客端分离的对象存储网盘,文件落在阿里云 OSS,目录、权限和提取码等业务数据落在 MySQL。
核心功能包括:多租户切换与账号密码登录;文件夹树管理,新建文件夹自动生成四位字母数字提取码,明文仅展示一次并以哈希存储;文件上传下载,写入 OSS 后以预签名 URL 下载;访客凭分享短链输入提取码后才能列表展示和下载,并做失败次数限制;同步中心记录出站/入站事件、冲突决议与未认领对象,支持对账。
业务流程为:管理员登录选择租户 → 创建文件夹获得提取码和分享链接 → 上传文件到对应目录并同步对象存储 → 将链接与提取码交给访客 → 访客校验通过后只读访问该文件夹子树。删除为软删除,对象由后台任务异步清理。系统将元数据与二进制分离,保证列表查询走数据库、字节以 OSS 为准。
企业内部管理