资料上传与版本管理:保留每一次明确的修订
把资料条目和实际文件分开,理解上传校验、版本标识、发布切换与旧版本清理。
资料条目和文件分别记录
一份使用说明可能被修订多次。资料条目可以保持固定标识,保存标题、所属分类和当前版本;每次上传则产生一个版本记录,保存文件大小、类型、上传时间和说明。这样,即使两次上传都叫使用说明,也能准确找到某次修订对应的文件。
对外展示的原始文件名可以保留,实际存储位置应由系统生成。让用户提交的名称直接决定磁盘路径,容易出现覆盖或路径处理问题。把资料标识、版本标识和存储对象标识区分开,还能让界面改标题时不必同步搬动实际文件。
上传完成需要明确条件
服务端接收文件时,应检查操作者权限、允许的类型和大小限制。扩展名及请求中的内容类型都可能不准确,需要结合文件特征和适用的内容检查。上传内容宜放在受控存储中,下载时再次检查访问权限,避免一个可猜测的地址暴露所有资料。
对于需要校验或转换的文件,可以先标记为处理中。只有文件完整接收、必要检查通过,才把新版本设为可用。网络中断留下的临时对象应有清理办法;如果保存版本记录失败,也应能识别尚未关联的文件,防止存储空间持续积累无法解释的内容。
发布新版本,保留旧引用
例如一篇文章引用了资料的第二版,发布第三版后,这个引用是否自动更新,需要明确约定。固定版本的引用适合复现当时内容;指向当前版本的链接适合始终提供最新说明。界面可以同时显示版本号和修订说明,让读者知道看到的是哪一次更新。
对象存储的版本功能能保留文件的不同状态,但文章、分类和权限等关联仍由应用管理。回退时可以把当前版本指回一个已确认的旧版,并记录回退原因。清理旧版前,还要检查引用和保留要求;回收策略应能解释删了什么,而不能只按文件日期机械删除。