资讯动态

Home Assistant MinIO 集成 minio.get 动作完全指南:将对象存储文件下载到本地文件系统

发布时间:2026/9/16 22:52:44 来源:尧图企业网站定制
Home Assistant MinIO 集成 minio.get 动作完全指南将对象存储文件下载到本地文件系统【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io导读minio.get是 Home Assistant MinIO 集成提供的下载动作Action用于将 MinIO 对象存储S3 兼容中的对象下载并保存到本地文件系统。本指南以 source/_actions/minio.get.markdown 为主干完整讲解该动作的前置条件、UI 与 YAML 两种使用方式、三个必填参数并结合 MinIO 集成文档 与minio.put、minio.remove配套动作给出可复制运行的自动化示例。读完后你将掌握如何在自动化与脚本中把相机快照、备份文件等对象从 MinIO 拉取到本地并正确处理路径白名单与事件触发。minio.get 动作是什么Get动作从 MinIO 桶bucket中下载一个对象object并将其保存为本地文件系统上的一个文件Bucket要从中下载的桶名称。Key对象在桶中的键key即对象的存储路径标识。File path保存到本地文件系统的目标路径。它在自动化中的典型应用场景是当系统中其他部分需要 MinIO 中已存储的文件时——例如取回此前由minio.put上传的相机快照、恢复备份文件、拉取其他设备生成的报告——无需人工操作直接由自动化完成下载。该动作不支持 targets目标选择。在 UI 中创建该动作时不会提示你选择区域area、设备device、实体entity或标签label因为它操作的是桶与键而非实体。前置条件allowlist_external_dirs 路径白名单使用minio.get之前必须满足一个关键前置条件目标File path所在的目录必须被添加到 Home Assistant 的allowlist_external_dirs配置项中。该配置位于configuration.yaml的homeassistant:小节用于限制集成访问外部目录的范围。只有白名单内的路径MinIO 集成才允许写入下载文件。示例homeassistant: allowlist_external_dirs: - /data/camera_files - /tmp如果不配置白名单minio.get动作将无法把文件保存到本地路径。同理minio.put动作读取本地文件同样受此白名单约束。从 UI 使用该动作如果你偏好可视化配置在自动化或脚本中按以下步骤添加进入设置Settings自动化与场景Automations scenes。打开一个已有自动化或脚本若新建选择创建自动化Create automation创建新自动化Create new automation。若是新建自动化在When何时部分添加触发条件脚本无需触发器它们由其他内容调用时执行。在Then do然后做部分选择添加动作Add action。在搜索框中搜索并选择Minio: Get。填写Bucket、对象Key以及要保存到的File path。点击保存Save。UI 中三个字段全部必填含义如下字段说明必填Bucket要从中下载的桶名称是Key对象在桶中的键是File path本地文件系统上保存文件的目标路径是在 YAML 中使用该动作在 YAML 中该动作被引用为minio.get。一个基础示例action: minio.get data: bucket: camera-files key: front_camera/snapshot.jpg file_path: /data/camera_files/snapshot.jpg该示例把camera-files桶中键为front_camera/snapshot.jpg的对象下载到本地/data/camera_files/snapshot.jpg。YAML 参数参考参数说明必填类型bucket要从中下载的桶名称是stringkey对象在桶中的键是stringfile_path保存文件的本地文件系统路径是string从源码文档的 YAML 定义minio.get看三个参数均为必填字符串没有可选参数与默认值。在自动化中使用在自动化中动作需要放在actions:列表下automation: - alias: Download new MinIO object triggers: - trigger: event event_type: minio actions: - action: minio.get data: bucket: {{ trigger.event.data.bucket }} key: {{ trigger.event.data.key }} file_path: /tmp/{{ trigger.event.data.key | basename }}实战示例当对象被添加到桶时自动下载结合 MinIO 集成文档 中listen的事件监听机制你可以实现对象一入桶即自动下载的完整链路触发条件Trigger一个 MinIO 桶创建对象的事件s3:ObjectCreated:*动作ActionMinio: Get完整自动化 YAMLautomation: - alias: Download new MinIO object triggers: - trigger: event event_type: minio actions: - action: minio.get data: bucket: {{ trigger.event.data.bucket }} key: {{ trigger.event.data.key }} file_path: /tmp/{{ trigger.event.data.key | basename }}这里通过{{ trigger.event.data.bucket }}、{{ trigger.event.data.key }}等模板从事件负载中动态取桶名与键再用| basename过滤器提取键的最后一段作为本地文件名从而避免写死路径、适配任意新对象。要让该自动化真正被触发需在 MinIO 集成配置中开启事件监听。集成文档 MinIO 集成配置 给出了完整配置项minio: host: localhost port: 9000 access_key: ACCESS_KEY secret_key: SECRET_KEY secure: false其中listen配置项用于声明要监听的事件支持以下子键子键说明必填类型默认值bucket要监听的桶是string—prefix过滤文件事件的前缀否stringsuffix过滤文件事件的后缀否string.*events要监听的文件事件类型否strings3:ObjectCreated:*监听配置示例只监听camera-files桶下以.jpg结尾、front_camera/前缀开头的新增对象minio: host: localhost port: 9000 access_key: ACCESS_KEY secret_key: SECRET_KEY secure: false listen: - bucket: camera-files prefix: front_camera/ suffix: .jpg events: s3:ObjectCreated:*与 minio.put、minio.remove 组成完整文件生命周期minio.get并非孤立动作它与 MinIO 集成提供的另外两个动作协同可覆盖上传—下载—清理的完整文件生命周期minio.put将本地文件上传到 MinIO 桶参数为bucket、key、file_path本地源文件路径。典型场景是相机检测到移动时抓拍快照并上传归档。minio.remove从桶中删除指定bucket、key的对象典型场景是每日定时清理一周前的旧快照保持存储整洁。集成文档 MinIO 集成配置 中给出了一个上传 清理组合的完整自动化automation: - alias: Upload camera snapshot triggers: - trigger: event event_type: folder_watcher event_data: event_type: created actions: - delay: 00:00:01 - action: minio.put data: file_path: {{ trigger.event.data.path }} bucket: camera-image-object-detection key: input/{{ now().year }}/{{ (now().month | string).zfill(2) }}/{{ (now().day | string).zfill(2) }}/{{ trigger.event.data.file }} - delay: 00:00:01 - action: shell_command.remove_file data: file: {{ trigger.event.data.path }}配合minio.get即可实现本地文件生成 → 上传 MinIO → 他处按需下载 → 过期删除的完整数据流转。快速调试在开发者工具中试运行不想写 YAML 也可以先验证动作效果进入设置Settings工具Tools动作Actions搜索minio.get按提示填入bucket、key、file_path三个字段点击执行动作Perform action即可在真实环境中看到文件是否被成功下载无需创建任何自动化或脚本。注意事项与常见问题路径白名单是硬约束file_path所在目录必须出现在allowlist_external_dirs中否则动作失败。配置后需重启 Home Assistant 使其生效。该动作不支持 targets不会出现区域、设备、实体或标签选择所有操作通过bucketkey定位对象。事件负载字段监听minio事件时trigger.event.data中可用的字段包括bucket、key、file_name等见集成文档示例模板引用时需与实际事件结构一致。secure参数MinIO 集成连接使用 HTTPS 还是 HTTP 由secure布尔值控制默认false即 HTTP自建 MinIO 服务常用localhost:9000secure: false。以上内容均以当前仓库文档为准动作定义见 source/_actions/minio.get.markdown配套动作见 minio.put 与 minio.remove集成整体配置见 source/_integrations/minio.markdown。【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价