对象 (BLOB 存储)
目录
概述
对象菜单用于管理平台中存储的非结构化文件(图像·文档·二进制)。设备照片、检测结果图像、图纸(PDF·DXF)、振动/声学传感器波形数据、自动生成的报告等按时间顺序存入,每个文件同时保存 BLOB ID·站点·说明等元数据。
BLOB:Binary Large Object 的缩写。指除以数值表示的传感器数据之外的照片/文档等大体积文件。
路径:左侧菜单 > Data > 对象 (BLOB) (内部 URL /blob/store)
界面结构
┌──────────────────────────────────────────────────────────────────────┐
│ 🖼 BLOB 스토어 [↻] │ ← ① 상단
├──────────┬───────────────────────────────────────────────────────────┤
│ BLOB │ 🕐 타임라인 [10M][30M][1H][6H][12H][전체] │
│ 목록 │ ─────────────────────────────────────────────────────────│
│ 패널 │ 조회 기간 [날짜범위] [검색] │ ← ② 우측
│ │ ─────────────────────────────────────────────────────────│
│ [추가] │ 타임라인 (시간 흐름) │
│ [검색🔍] │ ─────────────────────────────────────────────────────────│
│ [↻] │ ┌─ BLOB 상세 테이블 ─────────────────────────────┐ │
│ ─────── │ │ BLOB ID | 시간 | 오브젝트ID | 크기 | MIME | 속성 |⬇│ │
│ 사이트 ▼ │ └────────────────────────────────────────────────┘ │
│ 검색바🔍 │ │
│ ─────── │ │
│ 목록 │ │
│ (스크롤) │ │
│ │ │
│ 버켓: - │ │
└──────────┴───────────────────────────────────────────────────────────┘
| 区域 | 位置 | 显示内容 |
|---|---|---|
| ① 顶部 | 全宽 | 页面标题 + 刷新按钮 |
| ② 左侧 | col-lg-2 | BLOB 列表面板 (滚动 600px) |
| ③ 右侧 | col-lg-10 | 时间轴 + 查询表单 + BLOB 详情表格 |
顶部 — 页面标题·刷新
| 项目 | 形式 | 动作 |
|---|---|---|
| 标题 | 🖼 "BLOB 存储" | — |
刷新 (realtime_icon) | 红色按钮 + ↻ | 重新加载左侧 BLOB 列表与右侧详情 |
左侧 — BLOB 列表面板
在左侧 col-lg-2 宽度的窄面板中,已注册的 BLOB 按站点分组显示。
顶部工具 (3 个按钮)
| 按钮 | 图标 | 动作 |
|---|---|---|
| 添加 BLOB | ➕ | 打开添加 BLOB 模态框 (参见下方模态框项目) |
| BLOB 搜索切换 | 🔍 | 展开/折叠面板内的搜索输入框 |
| 刷新列表 | ↻ | 按当前站点筛选条件重新加载 BLOB 列表 |
站点筛选选择器
🏭 [ 사이트명 [설명] ▼ ]
| 项目 | 说明 |
|---|---|
| 前置图标 | 🏭 (工业) — 位于输入组左侧 |
| 选择器 ID | blob_site_filter |
| 选项格式 | 사이트명 [설명] (服务器渲染) |
| 默认选中 | 进入页面时若存在 selected_site_id 则选该站点,否则选第一个站点 |
| 变更时动作 | 选择后立即按该站点重新加载 BLOB 列表(onchange="blobList()") |
若未注册站点,选择器为空,BLOB 列表也为空。请先在工厂管理中注册站点。
BLOB 搜索
通过顶部工具的 🔍 按钮打开搜索输入框。
| 项目 | 说明 |
|---|---|
| 输入框 ID | blob_text |
| placeholder | "搜索 BLOB..." |
| 搜索依据 | BLOB 的说明(description)关键字 |
| 确认 | 回车(表单 submit)或右侧 🔍 按钮 |
列表区域与页脚
| 项目 | 说明 |
|---|---|
加载提示 (blob_loading) | "加载中 ..." (旋转图标) |
列表区域 (blob_content_list) | 无横向滚动,纵向滚动(固定高度 600px) |
| 列表项单位 | 每个 BLOB 以小卡片/缩略图形式排列 |
| 页脚 | "桶 : N" — 当前站点的存储桶数量 |
添加 BLOB 模态框
通过顶部 添加 BLOB 按钮打开的模态框。
| 输入项 | 宽度 | 说明 |
|---|---|---|
站点 (modal_site_id) | 200px | 从已注册站点中选择 |
BLOB ID (blob_id) | 自动 | placeholder: BLOB_00001 (영문 및 숫자, _ 만 입력) — 域内唯一 ID |
BLOB 名称 (blob_name) | 200px | placeholder: BLOB_NAME_00001 (영문 및 숫자, _ 만 입력) |
说明 (blob_desc) | 300px | 供人阅读的说明文本 |
模态框操作按钮
| 按钮 | 动作 |
|---|---|
| 取消 (×) | 关闭模态框 (不保存) |
保存 (saveBLOB()) | 校验输入后注册 BLOB 元数据 + 上传文件(文件选择在模态框之后的后续步骤中进行) |
BLOB ID 与 BLOB 名称仅允许英文·数字·下划线(
_)。不可使用中文或空格。
右侧 — 时间轴 + 详情表格
在左侧选择 BLOB 或站点后,右侧将可视化显示该范围的数据。
时间轴面板
┌────────────────────────────────────────────────────────────────────┐
│ 🕐 타임라인 [10M] [30M] [1H] [6H] [12H] [전체] │
├────────────────────────────────────────────────────────────────────┤
│ 조회 기간 [ 날짜 범위 ] [검색] │
├────────────────────────────────────────────────────────────────────┤
│ │
│ 타임라인 마커들 (각 BLOB 적재 시각이 점으로 표시) │
│ │
└────────────────────────────────────────────────────────────────────┘
| 项目 | ID | 说明 |
|---|---|---|
| 表头 | — | 🕐 "时间轴" + 右侧小号结果摘要文本(result_txt) |
| 时间轴区域 | control_timeline | 横轴为时间,BLOB 标记按时刻排列 |
快捷时间范围 (6 个按钮)
| 按钮 | data-range | 动作 |
|---|---|---|
| 10 分钟前 | 10M | 最近 10 分钟 |
| 30 分钟前 | 30M | 最近 30 分钟 |
| 1 小时前 | 1H | 最近 1 小时 |
| 6 小时前 | 6H | 最近 6 小时 |
| 12 小时前 | 12H | 最近 12 小时 |
| 全部期间 | ALL | 全部搜索范围 (默认启用) |
查询期间表单
时间轴面板正文顶部有一个内联表单。
| 控件 | 宽度 | 说明 |
|---|---|---|
| 查询期间标签 | 100px | "查询期间" 标签 |
期间输入 (search_time) | 280px | 文本输入 (居中对齐、粗体) — 点击时显示日期范围选择器。表单提交时通过 hidden 字段 search_date_from/search_date_to 传递 |
| 搜索 | 120px | 蓝色按钮 + 🔍 — 按上述期间条件重新加载右侧时间轴+表格 |
详情表格 (7 列)
时间轴下方以时间顺序在表格中列出搜索期间内的 BLOB。
| 列 | 宽度 | 对齐 | 显示值 |
|---|---|---|---|
| BLOB ID | 150px | 居中 | 域内唯一 ID (例: BLOB_00012) |
| 时间 | 180px | 居中 | 存入时刻 (yyyy-MM-dd HH:mm:ss) |
| 对象 ID | 300px | 居中 | 对象存储内部路径(对象键) |
| 文件大小 | 100px | 居中 | 自动单位换算 (B / KB / MB) |
| MIME 类型 | 100px | 居中 | 例: image/jpeg, application/pdf, text/csv |
| 属性 | 自动 | 左对齐 | 附加元数据的键:值集合 |
| 下载 | 60px | 左对齐 | ⬇ 图标 — 点击将文件下载到本地 |
各列运维提示
- 通过 MIME 类型 可立即识别文件种类。若类型与预期不符,可能是上传有误
- 文件大小 异常大的文件可能造成运行负载
- 属性 是自动化时由流程添加的键-值(例如检测结果图像的 OCR 文本、报告的开始/结束时刻)的存放位置
应用示例
| 用途 | 说明 |
|---|---|
| 设备照片留存 | 按时间顺序存入设备外观·安装照片·巡检照片 |
| 检测结果图像 | 质检相机自动存入 BLOB |
| 图纸管理 | 设备图纸(DXF·PDF)、管道图、接线图 |
| 传感器波形数据 | 振动·声学传感器的 raw 波形数据(WAV·CSV) |
| 自动生成报告 | 自动发布日运行报告、班次报告后留存 |
| 外部系统产出物 | 备份外部分析工具生成的结果文件 |
若需要自动存入,请在流程中连线外部集成节点(例如:通过
flow_http_request从外部系统接收 → 转换 → BLOB 存入动作)。
常见问题
Q. BLOB ID 与 BLOB 名称有何区别?
A. BLOB ID 是域内唯一标识符(系统以此 ID 引用),BLOB 名称 是便于人识别而赋予的别名。两者均仅允许英文·数字·_。
Q. 存入的 BLOB 何时会被删除? A. 依据单独的保存策略。默认为永久保存,如需自动删除策略,请联系系统管理员。
Q. 更改站点筛选后,其他站点的 BLOB 会消失吗? A. 不会消失。只是界面上不显示,数据仍然保留。切换回该站点后会重新显示其 BLOB。
Q. 可以用相同的 BLOB ID 添加新文件吗? A. 以相同 BLOB ID 存入时会新增一个版本(时刻不同的独立条目)。BLOB ID 是域标识符,文件本身按时间累积。
Q. 下载时中文文件名显示乱码。 A. 这是部分浏览器编码处理差异所致。可直接修改下载后的文件名使用,或换用其他浏览器尝试。
Q. BLOB 的时间排序看起来不自然。
A. 详情表格遵循搜索期间的时间排序。请使用快捷时间范围按钮(10M/30M 等)缩小时间窗口后查看。
Q. 在添加 BLOB 模态框中如何选择文件? A. 保存元信息后会进入文件上传步骤。大文件上传可能需要较长时间,请耐心等待进度完成。
Q. 能否自动化添加 BLOB? A. 使用流程可实现从外部系统自动存入 BLOB。示例:检测相机通过 HTTP 推送图像 → 流程赋予元信息 → 保存 BLOB。