baetyl-remote-object 模块
所有文档

          智能边缘 BIE

          baetyl-remote-object 模块

          简介

          baetyl-remote-object 模块用于将端侧文件上传到云端存储(Bos、Awss3)。其中,Awss3 指兼容 s3 接口的存储,可以支持标准 awss3、ceph、minio 等。baetyl-remote-obejct 从端侧 broker 订阅消息,然后解析消息内容,上传消息中的指定文件。

          镜像地址

          支持amd64/armv7/arm64架构。镜像地址:baetyltech/remote-object:v2.1.0

          配置

          baetyl-remote-object 的全量配置文件如下,并对配置字段做了相应解释:

          clients: # 客户端配置
            - name: # 客户端名称,[必须]指定,rules 中配置的 target 的 client 必须从这里配置的客户端列表中选取
              kind: # 支持上传的对象存储服务类型,目前可支持 bos、awss3。枚举值分别为 BOS、S3
              endpoint: # 服务地址
              region: # 仅对 awss3 类型有效,表示区域,默认值:us-east-1。endpoint 的优先级高于 region
              ak: # ak
              sk: # sk
              bucket: # bos、awss3 的 bucket
              timeout: # 默认值:30s,client 连接 bos、awss3 服务的超时时间
              backoff: # 上传策略,对 bos 生效
                max: # 最大重试次数,默认为 0
                delay: # 上传最长重试时间,默认为 20s
                base: # 上传重试基数时间,默认为 0.3s,按照重试基数乘以 2 的指数级增长方式进行重试,直到达到最大重试次数或最长重试时间为止
              multipart: # 大文件分块配置
                partsize: # 块大小,默认 10m,即 10MB,超过 10MB 分块
                concurrency: # 并发上传块数量,默认为 10
              pool: # 协程池配置
                worker: # 协程池最大协程数,默认为 1000
                idletime: # 空闲清理时间, 默认为 30s
              temppath: # 打包类型暂存地址
              limit: # 按月限流策略
                enable: # 是否开启限流,默认 false
                data: # 最大上传流量/月,[必须]大于 0,单位支持 k,m,g,t,p
                path: # 持久化统计文件路径
          
          rules:
            - name: rule1 # 规则名称,必须保持唯一
              source: # 消息源
                topic: broker/topic1 # 消息主题
                qos: 1 # 消息质量
              target: # 消息目的地
                client: baidubos # object 目标节点
          
          logger: # 日志配置
            path: # 日志路径
            level: # 日志级别

          接下来给出一个 bos 的配置 demo:

          clients:
            - name: baidubos
              kind: BOS
              endpoint: bj.bcebos.com
              ak: XXXXXXXXXXXXXXXXXXXXXXXXXX
              sk: XXXXXXXXXXXXXXXXXXXXXXXXXX
              multipart:
                partsize: 10m
                concurrency: 10
              pool:
                worker: 1000
                idletime: 30s
              bucket: bos-remote-demo
              temppath: var/lib/baetyl/tmp
              limit:
                enable: true
                data: 9g
                path: var/lib/baetyl/data/stats.yml
          
          rules:
            - name: rule1
              source:
                topic: broker/topic1
                qos: 1
              target:
                client: baidubos
          
          logger:
            path: var/log/baetyl/service.log
            level: "debug"

          minio 的配置 demo:

          clients:
            - name: minio
              kind: S3
              endpoint: http://127.0.0.1:8080
              ak: XXXXXXXXXXXXXXXXXXXXXXXX
              sk: XXXXXXXXXXXXXXXXXXXXXXXX
              multipart:
                partsize: 10m
                concurrency: 10
              pool:
                worker: 1000
                idletime: 30s
              bucket: bos-remote-demo
              temppath: var/lib/baetyl/tmp
              # max 1000g
              limit:
                enable: true
                data: 9g
                path: var/lib/baetyl/data/stats.yml
          
          rules:
            - name: rule3
              source:
                topic: broker/topic3
                qos: 1
              target:
                client: minio
          
          logger:
            path: var/log/baetyl/service.log
            level: "debug"

          注意,baetyl-remote-object 会默认连接端侧的 broker,相关资料可以参考 broker

          参考的 remote-object 消息模板:

          {
              "type":"UPLOAD",
              "content":{
                  "remotePath":"dir/abc.zip", // bos bucket内路径
                  "zip":true, // 打包zip true打包为zip,false下,对于文件不作改动,对于文件夹打包为tar
                  "localPath":"var/pic/2019-01-01.png", // 本地目录,可是文件/文件夹,文件夹可打包zip/tar
                  "meta": { // k-v map[string]string
                      "key1":"value1",
                      "key2":"value2"
                  }
              }
          }
          上一篇
          baetyl-rule 模块
          下一篇
          历史版本