Odoo | 技巧 | 源码功能-浅谈Odoo提供的附件机制(基于Odoo8)

Odoo8提供的附件机制

这里写图片描述

存储位置可配置:
  通过 设置-参数-系统参数 定义的关键字ir_attachment.location来控制附件的存储方式。
这里写图片描述

  • 1.如果未维护记录或者维护记录值不为db,默认存储路径为应用服务器上的/var/lib/odoo/filestore/数据库名称/文件夹,例如/var/lib/odoo/filestore/ 868/9c。

  • 2.将文件的路径写入store_fname字段,file_size表示文件大小,db_datas表示文件以二进制的形式存储在数据库中(这里为空)。

  • 3.如果维护记录值为db,则以binary的形式存储在数据库表db_datas中。

个人总结

  1. 可配置存储方式:
    我们的所有附件数据可以选择保存在数据库db_datas中,还是应用服务器/var/lib/odoo/数据库名/sha1[:2]中。
    如果保存在应用服务器中,系统的数据库会更加轻便,而且附件使用base64编码文件,通过sha1方式给每一个附件文件标定为唯一的记录datas_fname,如果上传相同的文件,数据库store_fname记录只需要放入文件的服务器软地址,不需要再将文件上传,加速了上传的效率。

  2. 同一记录单或不同记录单,相同的文件只会上传一次:
    数据库记录只需要放入相关的访问地址,需要时直接读取,防止多余的空间流失。HRP现有的资质的附件上传方式,采用数据库直接存取二进制文件形式,上传文件就接收,不校验,不智能,数据冗余,使得数据库臃肿不堪。

  3. 权限检查-更安全:
    对系统附件的每一种类型的操作,odoo源码附件机制都会检验权限是否满足,只有附件上传者、超级管理员、管理组用户才可以对相关附件进行高级操作,保证了操作附件的安全性。

  4. 不易丢失:
    选择应用服务器保存附件,极端情况下,当数据库数据丢失或损坏时,存储在服务器端的附件不会受到波及,防止数据丢失。

  5. 异步备份:
    虽然看起来既要备份数据库,又要备份应用服务器的附件部分,操作步骤变多了。但分步备份保证了数据库快速备份,服务器附件传输要求并不像数据库备份时,要求快速、轻便,所以这样的机制更适合

###如有理解错误的地方,请大家指正.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

比特本特

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值