1、什么是附件存储策略
在7.4.0版本中 sys_attachment 中增加了一个SA_STRATEGY_ID字段
该字段在附件保存时会同步生成一个id,这个id对应的就是附件存储策略,不同的策略他对应的id不一样,同样的策略id一样,以OSS存储为例:
刚开始我们配置如下
oss对应阿里云OSS,存储站点对应dn-zcg
通过以上配置文件上传完成后,附件表中会自动生成一个策略ID
该策略ID对应的是知识库中的dn_upload_store_strategy表,其**本质就是附件配置的内容备份**
当我们切换OSS,或者切换存储站点后,再次进行上传
此时附件表中的策略ID与之前的策略ID不同,因为它映射的策略不一样
需要注意的是:保存路径变更不会变更策略,因为路径本身已经存储在附件表的sa_server_path中
通过以上机制,用户即使切换存储策略,其原始配置一直存储在知识库中,只要存储策略能映射上,那么过去的文件仍然能被访问,不论控件配置被切换成何种类型存储介质,然而这种方式并不是万能的,附件信息仍然受数据库的限制(附件库的切换,会让附件表数据丢失或者错配)
还有一点需要注意的是,OSS那边对应存储的是一个配置编码,其映射的是知识库的OSS配置,如果知识库中的OSS配置发生改变或者删除,则需要同步迁移或者清空对应的策略编码
2、如何兼容老的附件数据
老的附件数据没有存储策略ID,所以在加载时默认按照当前配置加载
如果需要适配存储策略ID,那么步骤如下:
- 配置之前的存储策略
- 上传一个文件
- 生成存储策略ID
- 将生成存储策略ID赋值到需要的附件表SA_STRATEGY_ID字段上
3、如何迁移附件
附件迁移时,如果只是路径变更,则修改对应sa_server_path中的值即可
如果是存储策略变更,则需要同步变更SA_STRATEGY_ID上的值
具体步骤如下:
- 配置新的存储策略
- 上传一个文件
- 生成存储策略ID
- 将生成存储策略ID替换老的存储策略ID
作者:fanchengliang 创建时间:2025-04-18 16:01
最后编辑:Eric 更新时间:2025-04-24 13:55
最后编辑:Eric 更新时间:2025-04-24 13:55
