如何开发文件上传与扫描系统
上传进隔离区,扫描通过且管理员批准前不生成公开 URL。
目标用户
资源作者与安全审核员。
目标
- quarantine
- SHA-256
- 签名 URL
不做
- 信任扩展名
- 可执行文件默认公开
用户故事
- 作者上传后只看到隔离状态
- 管理员看到 MIME/Magic/哈希
页面与功能
页面:/submit/resource、/admin/files
功能:隔离桶、扫描记录、下架
架构
先落 STORAGE_LOCAL_DIR/quarantine,file-scan-worker 写 file_scans,批准后才签发路径。
数据库
resource_files.quarantine, file_scans, resource_submissions
API
上传返回 202;下载需登录且已批准
安全
ZIP bomb 限制;MIME 白名单;路径穿越检查。
测试
未批准文件 404。
部署
MVP 本地磁盘;接口保持 S3 语义。
任务
- 隔离
- 扫描状态
- 审核
Codex 执行提示词
实现资源上传隔离。未批准不得公开。记录 sha256 与 mime。不要在应用磁盘上存安装包。
