全栈应用服务器

  • 全栈应用服务器 > API 文档 > 沙箱概述 > 密钥注入

    密钥注入

    最近更新时间: 2026-06-30 15:56:28

    密钥注入

    密钥注入 API 用于管理平台侧保存的 HTTPS 请求注入规则。创建沙箱时可以通过 injections 引用已保存规则,或直接传入内联规则。真实密钥由平台侧持有,沙箱内进程不会直接读取真实密钥。

    支持的注入类型

    类型 必填参数 描述
    http base_url 自定义 HTTP Header 注入
    openai api_key OpenAI 兼容 API 注入,默认匹配 api.openai.com
    anthropic api_key Anthropic API 注入,默认匹配 api.anthropic.com
    gemini api_key Google Gemini API 注入,默认匹配 generativelanguage.googleapis.com
    qiniu api_key 七牛 AI API 注入,默认匹配 api.qnaigc.com
    github token GitHub HTTPS 请求注入,匹配 github.comapi.github.com

    所有注入类型都支持 base_url 的 host 精确匹配;当 base_url 包含 path 时按规范化路径精确匹配,path 末尾的 * 表示前缀匹配。httpopenaianthropicgeminiqiniugithub 类型还支持 if_headers / if_queries 条件匹配,用于要求请求中已经存在指定 Header 或 query 参数后才注入。

    查询注入规则列表

    描述

    查询当前账号下已保存的注入规则。

    请求路径

    GET /injection-rules
    

    响应字段

    返回注入规则数组:

    字段名称 字段类型 描述
    ruleID string 注入规则 ID
    name string 注入规则名称,同一用户下唯一
    createdAt string 创建时间
    updatedAt string 更新时间
    injection object 注入规则配置

    请求示例

    curl -X GET "$QINIU_SANDBOX_API_URL/injection-rules" \
      -H "Authorization: Qiniu <SignedToken>"
    

    SignedToken 由七牛 AK/SK 对请求签名生成。Go SDK 和 qshell 会自动完成签名。

    创建注入规则

    描述

    创建一条可复用的注入规则。

    请求路径

    POST /injection-rules
    

    请求参数

    参数名称 参数类型 必填 描述
    name string 注入规则名称,最长 64 个字符,同一用户下唯一
    injection object 注入规则配置

    http 类型参数:

    参数名称 参数类型 必填 描述
    injection.type string 固定为 http
    injection.base_url string 匹配 HTTPS 请求的基础 URL;未指定协议时默认使用 https
    injection.if_headers object 请求 Header 匹配条件,最多 20 项;Header 名大小写不敏感
    injection.if_queries object 请求 query 参数匹配条件,最多 20 项;参数名大小写敏感
    injection.headers object 要注入或覆盖的 HTTP Header,最多 20 项

    AI 服务类型参数:

    参数名称 参数类型 必填 描述
    injection.type string 取值为 openaianthropicgeminiqiniu
    injection.api_key string 对应服务的 API Key
    injection.base_url string 自定义基础 URL;不传时使用该类型默认 Host
    injection.if_headers object 请求 Header 匹配条件,最多 20 项
    injection.if_queries object 请求 query 参数匹配条件,最多 20 项

    GitHub 类型参数:

    参数名称 参数类型 必填 描述
    injection.type string 固定为 github
    injection.token string GitHub Token
    injection.base_url string 自定义匹配 URL;不传时匹配 github.comapi.github.com;传入时 host 必须为 github.comapi.github.com
    injection.if_headers object 请求 Header 匹配条件,最多 20 项
    injection.if_queries object 请求 query 参数匹配条件,最多 20 项

    响应字段

    字段同注入规则列表中的单个规则对象。

    请求示例

    curl -X POST "$QINIU_SANDBOX_API_URL/injection-rules" \
      -H "Authorization: Qiniu <SignedToken>" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "openai-prod",
        "injection": {
          "type": "openai",
          "api_key": "sk-xxx"
        }
      }'
    

    创建带条件匹配的 HTTP 注入规则:

    curl -X POST "$QINIU_SANDBOX_API_URL/injection-rules" \
      -H "Authorization: Qiniu <SignedToken>" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "internal-api-prod",
        "injection": {
          "type": "http",
          "base_url": "https://api.example.com/v1/*",
          "if_headers": {
            "X-Scope": "prod"
          },
          "if_queries": {
            "inject": "true"
          },
          "headers": {
            "Authorization": "Bearer secret-token"
          }
        }
      }'
    

    创建 GitHub 凭证注入规则:

    curl -X POST "$QINIU_SANDBOX_API_URL/injection-rules" \
      -H "Authorization: Qiniu <SignedToken>" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "github-api",
        "injection": {
          "type": "github",
          "base_url": "https://api.github.com/repos/qiniu/*",
          "token": "ghp_xxx"
        }
      }'
    

    响应示例

    {
      "ruleID": "ir_123456",
      "name": "openai-prod",
      "createdAt": "2026-01-01T00:00:00Z",
      "updatedAt": "2026-01-01T00:00:00Z",
      "injection": {
        "type": "openai"
      }
    }
    

    获取注入规则详情

    请求路径

    GET /injection-rules/{ruleID}
    

    路径参数

    参数名称 参数类型 必填 描述
    ruleID string 注入规则 ID

    成功时返回单个注入规则对象。

    更新注入规则

    请求路径

    PUT /injection-rules/{ruleID}
    

    请求参数

    参数名称 参数类型 必填 描述
    name string 新的注入规则名称,最长 64 个字符
    injection object 新的注入规则配置

    成功时返回更新后的注入规则对象。

    删除注入规则

    请求路径

    DELETE /injection-rules/{ruleID}
    

    成功时返回 204 No Content

    在创建沙箱时引用规则

    已保存的注入规则可以在创建沙箱时通过 type: id 引用:

    curl -X POST "$QINIU_SANDBOX_API_URL/sandboxes" \
      -H "X-API-Key: $QINIU_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "templateID": "base",
        "injections": [
          {
            "type": "id",
            "id": "ir_123456"
          }
        ]
      }'
    

    在创建沙箱时使用内联注入

    创建沙箱时也可以直接传入内联注入配置,字段结构与保存的 injection 相同;引用已有规则时使用 type: id

    curl -X POST "$QINIU_SANDBOX_API_URL/sandboxes" \
      -H "X-API-Key: $QINIU_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "templateID": "base",
        "injections": [
          {
            "type": "openai",
            "api_key": "sk-xxx"
          },
          {
            "type": "github",
            "base_url": "https://api.github.com/repos/qiniu/*",
            "token": "ghp_xxx"
          }
        ]
      }'
    

    相关文档

    以上内容是否对您有帮助?