集成
从 S3 或 Azure Blob 打印 ZPL——并将已打印的标签归档到其中
打印文件本来就存放在对象存储中:来自物流服务商的承运商标签、来自 ERP 的预渲染批次、为满足保留规定而保存的归档。本指南涵盖两个方向——从存储桶中打印 ZPL,以及把已打印的 ZPL 写回存储桶。
打印文件本来就存放在对象存储中:来自物流服务商的承运商标签、来自 ERP 的预渲染批次、为满足保留规定而保存的归档。本指南涵盖两个方向——从存储桶中打印 ZPL,以及把已打印的 ZPL 写回存储桶。
以下内容均适用于 Amazon S3 和 Azure Blob Storage。由于 S3 接口已标准化,MinIO、Cloudflare R2、Wasabi、Backblaze B2 和 Ceph 同样可用。
创建存储连接
在 数据流 → 存储 → 新建连接 下只需创建一次连接。名称 很重要:之后消息就是通过它来指定该连接的。
| 字段 | S3 | Azure Blob |
|---|---|---|
| 存储桶 / 容器 | 存储桶名称 | 容器名称 |
| 区域 | 例如 eu-central-1 | 不使用 |
| 终端节点 | AWS 留空,否则例如 https://minio.example.com | 不使用 |
| 路径样式 | 使用 MinIO 和 Ceph 时开启 | 不使用 |
| 前缀 | 可选,例如 zpl/ | 可选 |
| 凭据 | AccessKey=…;SecretKey=… | 连接字符串或容器 SAS URL |
凭据以 AES 加密形式存储在平台数据库中。它们永远不会回传到浏览器——表单只显示凭据是否存在。使用 S3 时也可以完全不填:此时将使用标准的 AWS 凭据链,例如运行环境的 IAM 角色。
测试 会在打印任何内容之前验证存储桶和权限是否正确。
方向 1:从存储桶打印 ZPL
总线消息可以携带成品 ZPL。但对于大文件来说这很不方便——许多 broker 会限制消息大小,而嵌入图形的标签很快就会变大。更好的做法是:消息只引用文件。
{
"schemaVersion": 1,
"printer": "rp:7",
"zplRef": { "storage": "archive", "key": "orders/4711.zpl" }
}
storage 是你的连接名称,key 是其中的对象键。已配置的前缀会被加在前面:使用前缀 zpl/ 时,上面的示例读取的是 zpl/orders/4711.zpl。
文件在打印时获取,而不是在收到消息时。名称只在你自己或你公司的范围内解析——即使有人知道别人连接的名称,也无法通过消息访问该连接。
方向 2:存储已打印的 ZPL 并发出通知
反方向称为输出目标。它包含打印成功后运行的三个步骤,每个步骤均可单独开启:
1. 存储——已打印的 ZPL 以文件形式写入存储连接。
2. 通知——向七种总线中的任意一种发送消息。
3. 触发——向你自己的 URL 发送经 HMAC-SHA256 签名的 HTTP POST 请求。
文件名由模板生成。所有时间均为 UTC:
模板:{yyyy}/{MM}/{dd}/{subscription}/{id}.zpl
结果:2026/09/09/Outbound/8f3c1e2a9b7d4c0e.zpl
可用的占位符有 {yyyy} {MM} {dd} {HH} {mm} {ss}、{subscription}、{printer}、{key}(总线消息的键),以及为每张标签生成唯一 ID 的 {id}。
通知和 webhook 接收相同的 payload:
{
"schemaVersion": 1,
"event": "label.printed",
"utc": "2026-09-09T12:34:56.7890000Z",
"subscription": "Outbound",
"printer": "rp:7",
"storageKey": "zpl/2026/09/09/Outbound/8f3c1e2a.zpl",
"storageUrl": "https://archive.s3.eu-central-1.amazonaws.com/zpl/2026/09/09/...",
"zplBytes": 812,
"zpl": null
}
只有在你明确要求时,才会包含 ZPL 本身。否则该字段为 null,有 URL 就足够了——这样消息可以保持精简。
这有什么用
- 保留规定。 发货标签属于业务记录。在你自己的存储桶中归档,并遵循服务商的生命周期规则,无需第二套系统即可满足要求。
- 无需重新渲染即可重新打印。 打印过的内容会逐字节保留下来。重新打印用的是同一个文件,而不是重新渲染。
- 移交给下游系统。 webhook 会通知 ERP 第 12 箱已贴好标签,同时附上该记录的链接。
存储故障绝不会中断打印
存储、通知和 webhook 全部在打印之后执行。即使存储桶暂时无法访问,标签照样会打印;错误会以文本形式记录在订阅日志中。归档不应拖慢业务运转。
输出目标随时可以通过 测试 进行试运行:它会存储一个示例 ZPL,并触发通知和 webhook,但不会打印任何内容。