云端储存空间¶
云存储集成允许将 沟通栏 和电子邮件附件存储在 Google Cloud 或 Microsoft Azure 平台上,而不是数据库的服务器上。
该模块可用于防止大文件上传到数据库服务器或从数据库服务器下载,也可用于数据库需要更多数据存储空间的情况。
注解
Odoo 生成的文件(例如销售订单)以及文件管理/签署应用的文件始终存储在数据库服务器上。
数据库的存储上限取决于其托管方案:
Odoo Online:100 GB
Odoo.sh:
共享托管:512 GB
专用托管:4 TB
本地部署:受现有基础设施的限制。
Google Cloud云¶
首先,注册并登录到 Google Cloud 。
服务账号¶
云存储空间bucket¶
在 Google Cloud 控制台中打开导航侧栏,然后转到 。
按照 bucket 命名准则 输入存储桶名称,并记录下来,因为在 配置 Odoo 时会用到它。
根据需要配置存储桶,完成后点击 创建。
点击 更多操作 按钮,然后选择 编辑访问权限。
点击 添加主账号,然后将服务账号的电子邮件粘贴到 新主账号 字段中。
在 Cloud Storage 部分下,选择 Storage Admin 作为 角色,然后点击 保存。
Odoo 配置¶
安装 Cloud Storage Google 模块。
打开 设置 应用,然后在导航侧栏中选择 云存储。
选择 Google Cloud Storage 作为 新附件的云存储提供商。
输入 之前设置 的 Google 存储桶名称。
点击 Google Service Account Key 旁的 上传文件,然后选择 下载的 JSON 文件。
设置附件存储在 Google Cloud 上的 最小文件大小(字节)。
微软 Azure¶
首先,注册并登录 微软 Azure 。
应用程序注册¶
在微软 Azure 门户中,搜索 应用程序注册 服务并打开它。
点击 新注册,输入应用程序 名称,在 支持的账户类型 下选择 任何组织目录中的账户(任何 Microsoft Entra ID 租户 - 多租户),然后点击 注册。
请记下 应用程序(客户端)ID 和 目录(租户)ID,因为在 配置 Odoo 时会用到它们。
点击 客户端凭据 旁的 添加证书或密码,点击 新客户端密码,然后点击 添加。
重要
出于安全原因,请将 过期 字段保留为
180 days (6 months),或选择更短的过期时间间隔。在密码过期之前,必须添加新的客户端密码,并使用新值更新 Odoo 的配置。复制客户端密码的 值 并安全保存。在 配置 Odoo 时会用到它。
存储帐户¶
搜索 存储账户 服务,打开它,然后点击 创建。
在 资源组 字段下方点击 新建,输入 名称,然后点击 确定。
输入唯一的 存储帐户名称 并将其记下,因为在 配置 Odoo 时会用到它。
按需配置存储帐户,完成后点击 查看 + 创建,然后点击 创建。
容器¶
打开您的存储帐户资源(例如通过搜索其名称),然后在导航侧栏中选择 数据存储 下的 容器。
输入 名称,将其记下,因为在 配置 Odoo 时会用到它,然后点击 创建。
资源共享¶
在存储帐户的导航侧栏中选择 设置 下的 资源共享 (CORS)。
创建第一条 CORS blob 服务规则:
允许的来源:
*允许的方法:
GET允许的标头:
Content-Type, Content-Disposition公开的标头:
Content-Type, Content-Disposition最长存留时间:
0
创建第二条 CORS blob 服务规则并点击 保存:
允许的来源:
*允许的方法:
PUT允许的标头:
content-type,x-ms-blob-type公开的标头:
content-type,x-ms-blob-type最长存留时间:
0
角色分配¶
自定义角色¶
注解
此步骤是 可选的。但是,移除 delete 权限可以防止任何能够访问云存储凭据的人删除文件。
打开您的订阅资源(例如通过搜索其名称),在导航侧栏中选择 访问控制 (IAM),点击 添加 并选择 添加自定义角色。
选择 JSON 选项卡并点击 编辑。复制下面的代码,在
assignableScopes下添加您的subscription-id,并根据需要将roleName改为Custom role,然后粘贴代码并点击 保存。
{
"properties": {
"roleName": "Custom role",
"description": "",
"assignableScopes": [
"/subscriptions/subscription-id"
],
"permissions": [
{
"actions": ["Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action"],
"notActions": [],
"dataActions": ["Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read", "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action"],
"notDataActions": []
}
]
}
}