如何将Odoo与Azure Blob Storage进行集成?
我之前帮几个客户搞定过Odoo和Azure Blob Storage的集成,步骤其实挺清晰的,我把具体操作拆解给你,跟着走基本不会踩坑:
准备工作
首先得把前置条件都备齐:
- 一个有效的Azure订阅,已经创建好Blob存储账户(建议选标准性能层,冗余类型按需选LRS/GRS就行)
- 在存储账户里创建一个专用的容器(推荐设为私有,后续用连接字符串授权访问更安全)
- 存储账户的连接字符串(在Azure门户的存储账户>访问密钥里可以复制,记得保存好,别泄露)
- Odoo服务器的管理员权限,能修改配置文件、安装模块和调整系统参数
安装必要的Python依赖
Odoo需要调用Azure的SDK来操作Blob存储,所以得先装对应的包:
- 登录到Odoo服务器的终端,如果用了虚拟环境先激活(比如
source /path/to/odoo-venv/bin/activate) - 执行安装命令:
pip install azure-storage-blob - 如果是Docker部署的Odoo,要么在Dockerfile里加这条安装命令,要么进入容器内部执行(
docker exec -it <odoo-container-name> bash)
配置Odoo的文件存储后端
这里分两种方法,选适合你Odoo版本的就行:
方法1:修改配置文件(全版本通用)
- 找到Odoo的配置文件(一般是
odoo.conf或者openerp.conf,路径可能是/etc/odoo/或者Odoo安装目录下) - 打开文件,添加以下配置项(把占位符换成你的实际信息):
# 启用外部存储作为附件存储后端 ir_attachment.location = azure # Azure存储账户的连接字符串 azure_connection_string = "DefaultEndpointsProtocol=https;AccountName=你的账户名;AccountKey=你的密钥;EndpointSuffix=core.windows.net" # 指定要使用的容器名称 azure_container = "你的容器名" # 可选:设置Blob的访问层级,默认是container,推荐设为blob azure_blob_access_type = blob - 保存配置文件,重启Odoo服务(比如
systemctl restart odoo)
方法2:Odoo后台界面配置(15+版本支持)
如果你的Odoo是15及以上版本,用界面配置更直观:
- 登录Odoo后台,进入设置 > 技术 > 文档管理 > 外部存储
- 点击「创建」,填写以下信息:
- 名称:随便起,比如「Azure Blob 存储」
- 存储类型:选「Azure」
- 连接字符串:粘贴你从Azure复制的连接字符串
- 容器名称:填写你的容器名
- 访问类型:推荐选「私有」(只有通过连接字符串才能访问)
- 保存后,进入设置 > 技术 > 参数 > 系统参数,找到
ir_attachment.location,把它的值改成你刚才创建的外部存储的XML ID(比如external_storage_azure_1,可以在外部存储列表里查看) - 重启Odoo服务生效
测试集成是否成功
配置完后一定要验证下:
- 随便找个Odoo表单(比如客户、产品)上传一个附件,比如图片或者PDF
- 登录Azure门户,进入你的Blob存储账户,打开对应的容器,看看能不能找到刚上传的文件
- 下载这个文件,检查是否和上传的一致
- 再回到Odoo,尝试下载这个附件,确认能正常打开
常见问题与注意事项
- 权限报错:如果Odoo传不了文件,先检查连接字符串是否正确,再确认Azure存储账户的密钥有没有Blob的读写权限
- 文件大小限制:Azure标准块Blob最大支持5TB,Odoo本身的附件大小限制可以在系统参数
web.max_upload_size里调整(单位是字节,比如10485760就是10MB) - 性能优化:可以启用Odoo的附件缓存,或者给Azure Blob配置CDN来加速文件访问
- 备份策略:记得定期备份Azure Blob里的文件,或者启用Azure的自动快照功能
内容的提问来源于stack exchange,提问作者Shubham Biniwale
相关产品推荐
相关产品推荐

