跳转至

文档索引

获取完整文档索引:https://docs.osmedeus.org/llms.txt 在进一步探索前,请使用此文件发现所有可用页面。

通知与CDN配置

本指南涵盖高级配置选项,包括通知和CDN设置

通知和CDN设置可直接在设置文件中修改。本页提供通过CLI进行最常见配置的快速参考,以及如何验证您的设置。

通知配置

## Telegram 设置
osmedeus config set notification.enabled true
osmedeus config set notification.telegram.enabled true
osmedeus config set notification.provider telegram
osmedeus config set notification.telegram.bot_token "12345:your-token"
osmedeus config set notification.telegram.chat_id "-1001234567890"

通过使用工具函数 osmedeus eval 'notify_telegram("**hola** osmedeus from cli")' 发送示例消息来验证您的设置。

通知函数

使用 osmedeus func ls noti 列出所有可用的通知函数。

如何获取您的Telegram令牌和频道ID

以下是获取Telegram令牌和频道ID的快速指南:

搜索 @BotFather 并创建您的机器人,然后获取令牌

# 获取频道ID
curl "https://api.telegram.org/bot$TELEGRAM_TOKEN/getUpdates" | jq 

# 发送测试消息
curl -X POST "https://api.telegram.org/bot$TELEGRAM_TOKEN/sendMessage" -d chat_id=-<channel-id> -d text="Hello, this is a broadcast to the channel"

CDN配置

使用 osmedeus func ls cdn 列出所有可用的CDN函数。以下是我常用的一些函数:

CDN函数

osmedeus eval 'cdn_ls_tree()'

# 下载和上传结果
osmedeus eval cdn_download("workspace_result.jsonl", "workspace_result.jsonl")
osmedeus eval cdn_upload("workspace_result.jsonl", "workspace_result.jsonl")

# 同步文件夹到远程
osmedeus eval 'cdn_sync_upload("local", "remote")'

osmedeus eval 'cdn_ls_tree("targets/")'

Cloudflare R2

## R2的CDN设置
osmedeus config set storage.provider 'r2'
osmedeus config set storage.access_key_id '<r2-key-id>'
osmedeus config set storage.bucket '<r2-bucket-name>'
osmedeus config set storage.secret_access_key '<r2-access-key>'
osmedeus config set storage.endpoint '<endpoint>.r2.cloudflarestorage.com'
osmedeus config set storage.presign_expiry '2h'
osmedeus config set storage.use_ssl 'true'
osmedeus config set storage.enabled 'true'

通过使用工具函数 osmedeus eval 'cdn_ls_tree()' 发送示例消息来验证您的设置。

Google Cloud Storage

## GCS的CDN设置
osmedeus config set storage.provider 'gcs'
osmedeus config set storage.access_key_id '<gcs-key-id>'
osmedeus config set storage.secret_access_key '<gcs-access-key>'
osmedeus config set storage.bucket '<gcs-bucket-name>'
osmedeus config set storage.endpoint 'storage.googleapis.com'
osmedeus config set storage.region 'us-east-1'
osmedeus config set storage.use_ssl 'true'
osmedeus config set storage.presign_expiry '1h'
osmedeus config set storage.enabled 'true'

通过使用工具函数 osmedeus eval 'cdn_ls_tree()' 发送示例消息来验证您的设置。

完整通知与CDN配置

完整通知与CDN配置
# =============================================================================
# 通知配置
# =============================================================================
# 扫描完成或发现有趣结果时发送通知
notification:
  # 通知供应商:"telegram"(未来支持:slack, discord, webhook)
  provider: telegram

  # 主开关,启用/禁用所有通知
  enabled: false

  # Telegram机器人设置
  # 通过 @BotFather 创建机器人并获取令牌
  # 通过向 @userinfobot 发送消息获取您的聊天ID
  telegram:
    # 来自 @BotFather 的机器人令牌
    bot_token: ""

    # 接收消息的聊天ID(可以是用户或群组)
    chat_id: 0

    # 启用Telegram通知
    enabled: false

    # 按名称发送到特定频道/群组的频道映射
    # 使用 notify_telegram_channel("#name", "message") 或 send_telegram_file_channel("#name", "/path/to/file")
    # 也可以直接使用数字聊天ID:notify_telegram_channel("-1001234567890", "message")
    telegram_channel_map:
      # alerts: -1001234567890
      # reports: -1009876543210

  # Webhook设置
  # 配置多个Webhook端点用于通知
  # Webhook在工作流事件(完成、失败等)时触发
  webhooks:
    # 示例Webhook配置
    - url: "https://example.com/webhook"
      # 启用/禁用此Webhook
      enabled: false
      # 自定义HTTP头(例如,用于身份验证)
      headers:
        Authorization: "Bearer your-token-here"
        Content-Type: "application/json"
      # 请求超时时间(秒,默认:30)
      timeout: 30
      # 失败时的重试次数(默认:3)
      retry_count: 3
      # 跳过TLS证书验证(默认:false)
      # 对于自签名证书设置为true
      skip_tls_verify: false
      # 事件过滤器 - 仅在这些事件时触发(空 = 所有事件)
      # 可用事件:workflow_completed, workflow_failed, workflow_cancelled
      events:
        - workflow_completed
        - workflow_failed

    # 第二个Webhook示例(例如,Slack incoming webhook)
    # - url: "https://hooks.slack.com/services/xxx/yyy/zzz"
    #   enabled: false
    #   headers: {}
    #   events:
    #     - workflow_completed

# =============================================================================
# 云存储配置(可选)
# =============================================================================
# 用于备份扫描结果的S3兼容存储
# 支持AWS S3, MinIO, Cloudflare R2, Google Cloud Storage, DigitalOcean Spaces, Oracle OCI
storage:
  # 存储供应商:"s3", "minio", "r2", "gcs", "spaces", "oci"
  # 供应商决定端点解析和默认设置
  provider: s3

  # 存储端点URL(大多数供应商自动解析)
  # 留空以根据供应商和区域/账户ID自动解析
  # 显式示例:
  #   AWS S3: "s3.us-east-1.amazonaws.com"
  #   MinIO: "localhost:9000"
  #   R2: 将从account_id自动解析
  #   GCS: "storage.googleapis.com"
  #   Spaces: 将从区域自动解析(例如,"nyc3.digitaloceanspaces.com")
  #   OCI: 将从account_id(命名空间)和区域自动解析
  endpoint: ""

  # 访问凭证
  access_key_id: ""
  secret_access_key: ""

  # 用于存储结果的存储桶名称
  bucket: ""

  # 云区域(例如,us-east-1, eu-west-1)
  # 必需:s3, spaces, oci
  region: us-east-1

  # 账户ID或命名空间(供应商特定)
  # R2: 您的Cloudflare账户ID
  # OCI: 您的对象存储命名空间
  account_id: ""

  # 使用SSL/TLS连接(默认:云供应商为true)
  use_ssl: true

  # 强制路径样式URL(按供应商自动配置)
  # 对于MinIO, R2, OCI设置为true;对于S3, GCS, Spaces设置为false
  path_style: false

  # 默认预签名URL过期时间(例如,"1h", "30m", "24h")
  # 当未指定过期时间时,由cdnGetPresignedURL使用
  presign_expiry: "1h"

  # 启用云存储上传
  enabled: false