跳至内容

Odoo 19 附件存储:本地盘与对象存储切换注意点

ir.attachment:本地 filestore 迁对象存储的双写与回退
2025年12月1日
Odoo 19 附件存储:本地盘与对象存储切换注意点

附件从本地 filestore 迁到对象存储,核心不是「改个配置」,而是历史 ir.attachmentstore_fname/内容可回读、新上传落新后端、旧 URL 不裂、出问题可回退。本文给出迁移步骤、校验方法、CDN 与签名 URL 注意点。

迁移前盘点

统计附件数量、总容量、最大对象、是否含私有人事/财务文件。确认备份:库与 filestore 同一时刻(参见备份文)。选定对象存储桶权限:默认私有,应用用密钥读写。

推荐步骤

  1. 冷数据先迁移并校验哈希。
  2. 开启双写或切换读路径(按所用存储模块能力)。
  3. 抽检图片、PDF、邮件附件、电子签文件。
  4. 新上传抽样确认落在新后端。
  5. 保留旧后端只读窗口,观察期后再下线。

CDN 与签名 URL

CDN 强缓存可能导致替换附件仍看到旧文件——注意缓存键与失效策略。签名 URL 过期时间要覆盖业务场景(客户下载体量大文件)。公有读桶慎用,优先应用侧鉴权下载。

回退条件

错误率上升、大面积 403/404、性能不可接受时,切回旧读路径。回退演练要在预生产做过,不要第一次在生产试。

验收标准

  • 随机 20 个旧链接可打开。
  • 新上传落在新后端;备份文档含对象存储版本说明。
  • 回退开关可用。

迁移观察期指标

切换读路径后 7–14 天观察:附件 404/403 率、平均下载耗时、对象存储费用、 签名 URL 过期投诉。每天随机抽 20 条历史 ir.attachment(含邮件与发票)做哈希/可读校验。 观察期保留旧后端只读;达标后再只读归档或下线。回退演练脚本放在运维仓库, 标题写清「附件存储回退」,与数据库回滚预案分开,避免误操作。

迁移窗口选低峰;迁移期间暂停大规模附件清理 cron,避免与拷贝互相抢 IO。

双写窗口的操作纪律

双写开启后,禁止手工改存储后端开关「试试看」。每日比对:新附件后端分布、旧附件可读抽样、 错误日志。对象存储权限最小:仅应用角色可 Put/Get,禁止公共 list。CDN 若启用,附件更新要带版本参数或主动刷新。 回退时先切读路径再观察,最后停双写。备份文档写明桶名、区域、版本控制开关、密钥保管人。

大附件(安装包、视频)是否允许上传要单独策略,避免对象存储费用失控。

对象存储费用异常上涨时,先查是否误开公共读或未设生命周期策略。

预生产勾选表需覆盖文章编号 325 全部验收点后再约生产窗口。

将文章编号 325 的配置变更记入发版说明,便于回滚对照。

将文章编号 325 的配置变更记入发版说明,便于回滚对照。

将文章编号 325 的配置变更记入发版说明,便于回滚对照。

将文章编号 325 的配置变更记入发版说明,便于回滚对照。

费用与生命周期

对象存储开启生命周期与版本控制;费用异常先查公共读与未删除多版本。 观察期指标达标再下线旧后端。回退脚本与库回滚分章。大附件单独策略。 每日抽样 20 条历史 ir.attachment。CDN 缓存键带版本。备份说明含桶与密钥保管人。

落地备忘(325-0):把本文验收项做成检查表,预生产逐条勾选并附截图;生产窗口前提交负责人签字。相关模型与字段以当前 Odoo 19 实例开发者模式显示为准。

落地备忘(325-1):把本文验收项做成检查表,预生产逐条勾选并附截图;生产窗口前提交负责人签字。相关模型与字段以当前 Odoo 19 实例开发者模式显示为准。

中国Odoo网|对照 Odoo 19 企业版附件存储实践:ir.attachment 双写校验,旧链接可回读,迁移可回退。

Odoo 19 附件存储:本地盘与对象存储切换注意点
2025年12月1日
存档