文档配置

Rust · 0.1.0

附件存储

选择上传文件的保存位置,并把它纳入备份。

存储方式

管理员存储设置支持数据库、本地文件系统和 S3 兼容存储。数据库存储将附件字节放在数据库中;本地存储需要持久目录;S3 兼容存储需要可访问的端点、存储桶和最小权限凭据。应用上传大小限制决定可接受的文件,代理还可能施加另一层限制。

迁移前先验证

配置目标后,上传一个小测试文件,再以所有者身份读取,并单独测试预期的分享方式。配置变化并不证明已有文件已经复制到新位置。确认所需附件和恢复流程都正确之前,请保留旧文件。

区分存储可用性与访问权限

应用在返回文件内容前检查附件访问权限。不要为了修复应用权限错误而把存储桶改成公开。应将本地文件或对象存储与数据库一同备份,因为数据库可能只保存引用而不包含文件本体。

配置并验证存储目标

以实例管理员登录,进入「设置 → 存储」,选择本地、数据库或 S3,检查上传大小限制后保存。本地存储可保留默认模板 assets/{timestamp}_{uuid}_{filename},并让数据目录持久化。数据库存储需要考虑更大的数据库备份及缓冲读取的内存成本。S3 需要填写 Access key ID、Secret access key、Endpoint、Region、Bucket;仅在提供方要求时启用 path-style。表单还要求非空文件路径模板。

用新旧两个文件验收

更换默认存储前,下载一个旧附件作为对照。保存配置后,新建私人测试笔记,上传一个名字唯一的小文本文件,刷新笔记,再下载并比较内容。随后再次下载旧附件。新文件正常而旧文件失败,通常指向旧存储配置或对象不可用,不代表迁移成功。所需文件和恢复流程未验证前,保留旧存储定义及对象。

按失败层级排查

保存被拒时,检查必填字段以及 STORAGE 是否由部署文件管理。上传失败时,先比较文件大小与代理、实例两层限制,再检查目录权限或 S3 地址和凭据。上传成功但下载失败时,分别检查实际对象与笔记权限。已有 UI 配置中留空的去敏秘密字段可能表示保留原值;部署 JSON 的规则不同,空值就是空值。