文件存储与 Vault 保险库管理
在 Aras Innovator 中,结构化业务元数据(例如零件编号、生命周期状态等)存储于 MS SQL Server 关系型数据库中,而非结构化文件(如 CAD 模型、Office 文档、PDF 图纸等)则由专门的 Vault Server(文件保险库服务器) 进行集中存储和生命周期分发。
1. Vault 存储架构
Aras 采用“元数据与物理文件分离”的设计。
关键组件角色
- Innovator Web Server:接收业务操作请求,操作元数据表。在文件传输中,它充当控制中心,但不直接流式传输大文件(除非在特定单一服务器架构下)。它为客户端颁发限时的文件传输凭证(Token)。
- Vault Server:这是一个运行在 IIS 下的独立 Web 应用,提供安全的文件上传、下载及物理存储访问接口。物理存储目录可以位于本地磁盘、SAN 存储或 NAS 网络共享路径上。
- File Item (文件对象类):系统内置的
FileItemType。数据库中只存储文件的元数据(文件名、物理大小、校验和 hash 值、存储的 Vault ID 等),并不保存文件内容。
2. 文件上传与下载生命周期
2.1 文件上传流程
- 获取凭证:客户端通过 AML 创建一个
FileItemType 的实例,服务器在数据库写入该记录并生成一个唯一 GUID。 - 重定向物理上传:客户端在接收到 GUID 和 Vault 目标 URL 后,通过标准的 HTTP POST 协议将物理文件传输给对应的 Vault Server。
- 哈希与磁盘写入:Vault Server 接收文件,将其保存在物理存储路径下。为了避免重名冲突和安全隐患,物理文件的存储文件名通常是其 File GUID,而文件真实名称则作为属性记录在 SQL Server 中。
2.2 文件下载流程
- 下载请求:客户端发出下载特定 File ID 的请求。
- 解析存储位置:Innovator Web Server 解析该文件元数据,识别其物理存储在哪个 Vault,并验证当前用户是否有 Get 权限。
- 安全重定向:Web Server 返回给客户端一个单次有效的签名下载 URL,客户端直接向 Vault Server 请求流式下载该物理文件。
3. 文件容器 (File Container) 设计模式
在 Aras 建模中,物理文件不能孤立存在,必须与特定的业务对象(如文档、CAD 零件等)关联。常见的设计模式有两种:
| 设计模式 | 实现方式 | 适用场景 | 优缺点 |
|---|---|---|---|
| 模式一:关系类关联 (Relationship Container) | 创建一个以业务对象为 Source,File ItemType 为 Related 的关系类。 | 零件图纸列表、技术说明书等多附件场景。 | 优点:支持多文件上传,能记录每个文件的上传者与时间。 缺点:需要展示关系 Tab 页,操作步骤稍长。 |
| 模式二:对象属性关联 (Item Property) | 在 ItemType 中直接定义一个 Data Type 为 Item 且 Data Source 指向 File 的属性。 | 头像图片、主设计图纸、特定认证报告等单文件场景。 | 优点:可在 Form 表单中直接呈现上传/下载控件,直观快捷。 缺点:一个属性只能绑定一个文件。 |
4. 文件复制与分发 (File Replication)
对于跨国集团或分布式企业,如果所有的物理文件都存储在总部的单一 Vault 中,异地研发中心在下载或上传大文件(如 500MB 的 CAD 组件)时,会面临严重的网络带宽瓶颈。
Aras 提供了强大的 Vault 复制与分发机制,使得文件可以自动或按需在不同的物理 Vault 之间同步。
4.1 复制策略分类
Aras 支持两种核心的复制策略:
按需复制 (OnDemand Replication):
- 物理文件仅存放在初始上传的 Vault 中。
- 当异地用户(例如德国分中心)首次尝试打开并下载该文件时,系统会触发按需复制规则,在后台建立 Vault 间的点对点数据传输。
- 传输完成后,德国 Vault 本地缓存该文件,后续的德国用户读取时可直接从本地 Vault 下载。
基于事件复制 (onEvent Replication):
- 物理文件一经上传,或者在业务流转到特定状态时(例如生命周期流转到
Released状态),系统会自动触发后台线程进行分发。 - 复制服务在后台静默运行,提前将文件推送到定义的各个分中心 Vault,保证异地用户在需要时能够获得“秒开”的体验。
- 物理文件一经上传,或者在业务流转到特定状态时(例如生命周期流转到
4.2 配置 Vault 读取优先级 (Read Vault Priority)
当企业部署了多个物理 Vault 时,我们可以为不同地理位置的 Identity(角色/部门) 配置 Vault 读取顺序:
- 例如,“上海研发部”这个 Identity 的默认 Vault 设为
Shanghai_Vault。 - 如果请求的文件在
Shanghai_Vault中不存在,系统会根据 Read Vault Priority 规则,按照顺序尝试从Beijing_Master_Vault或Wuhan_Vault中读取。 - 系统在远程 Vault 找到文件后,会自动下载并缓存到本地
Shanghai_Vault。
4.3 配置复制规则 (Replication Rules) 的关键步骤
- 创建 Replication Rule:
- 在管理员菜单中,新建一个 Replication Rule。
- 设置触发方式为
On Demand或onEvent。
- 指定文件类型 (File Types):
- 可以过滤仅对高容量的文件(如
.zip,.pdf,.dwg)进行自动分发,而忽略小文本文件。
- 可以过滤仅对高容量的文件(如
- 配置目标 Vault (Target Vaults):
- 定义从 Source Vault 复制到哪些 Target Vault。
- 监控复制事务:
- 管理员可以通过
Replication Transaction监视日志,查看当前正在进行、挂起或失败的物理文件传输状态。
- 管理员可以通过
