From 541a9b5e33e8ef8047e93db7631235f74ecc14a6 Mon Sep 17 00:00:00 2001 From: chakcy <947105045@qq.com> Date: Fri, 21 Aug 2026 15:29:59 +0800 Subject: [PATCH] =?UTF-8?q?modify:=20S3=E5=AF=B9=E8=B1=A1=E5=AD=98?= =?UTF-8?q?=E5=82=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- workers/demo/config.toml | 14 ++++++++++++++ workers/demo/download_bytes.toml | 11 +++++++++++ workers/demo/presign_download.toml | 12 ++++++++++++ workers/demo/presign_upload.toml | 12 ++++++++++++ workers/demo/upload_bytes.toml | 10 ++++++++++ 5 files changed, 59 insertions(+) create mode 100644 workers/demo/download_bytes.toml create mode 100644 workers/demo/presign_download.toml create mode 100644 workers/demo/presign_upload.toml create mode 100644 workers/demo/upload_bytes.toml diff --git a/workers/demo/config.toml b/workers/demo/config.toml index edb46cf..c50c8f4 100644 --- a/workers/demo/config.toml +++ b/workers/demo/config.toml @@ -23,3 +23,17 @@ tags = ["demo", "process-plugin"] # ====== Worker 运行时配置(由 worker_serve 传递给 create_workers) ====== [workers.config] greeting_prefix = "Hello" # 演示插件私有配置项 + +# ====== 文件传输:直连 S3/Minio 对象存储(可选,默认不启用) ====== +# 启用后 demo.storage.* 端点可用(预签名 URL 直传直取 + base64 小文件传输), +# 数据路径不经过网关,详见 docs/process-plugin.md「文件传输:直连 S3/Minio」。 +# 取消下面 8 行注释并填好 Minio 地址/密钥即可启用;连接失败会告警降级(端点返回 +# "storage 未配置" 错误),不会影响其他端点。 +# [workers.config.storage] +# endpoint = "192.168.1.10:9000" # Minio 地址 host:port(不带协议前缀) +# access_key = "minioadmin" +# secret_key = "minioadmin" +# bucket = "chongming-files" +# secure = false # false=http(默认),true=https +# region = "" # 可选 +# auto_create_bucket = true # 可选,默认 true:启动时确保 bucket 存在 diff --git a/workers/demo/download_bytes.toml b/workers/demo/download_bytes.toml new file mode 100644 index 0000000..1849763 --- /dev/null +++ b/workers/demo/download_bytes.toml @@ -0,0 +1,11 @@ +[GET] +summary = "进程插件示例:下载文件为 base64(经 Zenoh 从 Minio 读取)" +subject = "demo.storage.download_bytes" +params = ["object_key: str"] +auth_required = false + +[GET.response_model] +object_key = { type = "str", required = true } +data_b64 = { type = "str", required = true } +size = { type = "int", required = true } +timestamp = { type = "float", required = true } diff --git a/workers/demo/presign_download.toml b/workers/demo/presign_download.toml new file mode 100644 index 0000000..56000b2 --- /dev/null +++ b/workers/demo/presign_download.toml @@ -0,0 +1,12 @@ +[GET] +summary = "进程插件示例:获取预签名下载 URL(设备直取 Minio,不经网关)" +subject = "demo.storage.presign_download" +params = ["object_key: str"] +auth_required = false + +[GET.response_model] +object_key = { type = "str", required = true } +presigned_url = { type = "str", required = true } +method = { type = "str", required = true } +expires = { type = "int", required = true } +timestamp = { type = "float", required = true } diff --git a/workers/demo/presign_upload.toml b/workers/demo/presign_upload.toml new file mode 100644 index 0000000..7c764f6 --- /dev/null +++ b/workers/demo/presign_upload.toml @@ -0,0 +1,12 @@ +[POST] +summary = "进程插件示例:获取预签名上传 URL(设备直传 Minio,不经网关)" +subject = "demo.storage.presign_upload" +params = ["filename: str"] +auth_required = false + +[POST.response_model] +object_key = { type = "str", required = true } +presigned_url = { type = "str", required = true } +method = { type = "str", required = true } +expires = { type = "int", required = true } +timestamp = { type = "float", required = true } diff --git a/workers/demo/upload_bytes.toml b/workers/demo/upload_bytes.toml new file mode 100644 index 0000000..d92b0f2 --- /dev/null +++ b/workers/demo/upload_bytes.toml @@ -0,0 +1,10 @@ +[POST] +summary = "进程插件示例:base64 小文件上传(经 Zenoh 写入 Minio)" +subject = "demo.storage.upload_bytes" +params = ["object_key: str", "data_b64: str"] +auth_required = false + +[POST.response_model] +object_key = { type = "str", required = true } +size = { type = "int", required = true } +timestamp = { type = "float", required = true }