穿云 API V2s 版本使用和集成教程

本文依据穿云 API 官方文档整理:V2s 与 V2 使用方式基本一致,核心差异是 V2s 支持 stream 流式响应。实际接入前,请以当前官方文档和控制台配置为准。

什么是穿云 API V2s

穿云 API V2s 可以理解为 V2 的流式响应版本。它与 V2 的挑战处理、代理配置、会话分区和 Turnstile 参数保持一致,但支持 stream 流式响应。如果你的请求会返回大文件、长文本、导出内容,或者需要边下载边处理,就可以使用 V2s。

适用场景

  • 目标站需要穿云 V2 能力,例如 JS 质询、Turnstile 或会话保持。
  • 响应体较大,普通一次性读取容易超时或占用过多内存。
  • 需要下载文件、导出 CSV/ZIP/PDF,或者边接收边写入文件。
  • 希望在响应到达时立即处理,而不是等待服务端完整返回后再处理。

核心请求头

请求头说明
x-cb-apikey穿云 API Key,必填
x-cb-host目标站域名,不包含协议和路径
x-cb-version: 2s启用 V2s 流式响应版本
x-cb-proxyV2/V2s 必须配置固定或具有时效性的 IP 代理
x-cb-part可选,会话分区,用于服务端托管验证 Cookie
x-cb-sitekeyTurnstile 场景可选,用于触发小部件验证
x-cb-timeout可选,V2s 默认 30 秒,范围 5-3600 秒

cURL 示例:下载大文件

curl --request GET   --url "https://api.cloudbypass.com/files/report.zip"   --header "x-cb-apikey: YOUR_APIKEY"   --header "x-cb-host: target.com"   --header "x-cb-version: 2s"   --header "x-cb-proxy: http://user:pass@proxy-host:port"   --header "x-cb-timeout: 600"   --output report.zip

URL 的路径和查询参数保持目标站原样,只需要把协议和域名替换为 https://api.cloudbypass.com,并通过 x-cb-host 指定目标域名。

Python 示例:边下载边写入文件

import requests

url = "https://api.cloudbypass.com/files/report.zip"
headers = {
    "x-cb-apikey": "YOUR_APIKEY",
    "x-cb-host": "target.com",
    "x-cb-version": "2s",
    "x-cb-proxy": "http://user:pass@proxy-host:port",
    "x-cb-timeout": "600",
}

with requests.get(url, headers=headers, stream=True, timeout=650) as resp:
    print(resp.status_code, resp.headers.get("x-cb-status"))
    resp.raise_for_status()
    with open("report.zip", "wb") as f:
        for chunk in resp.iter_content(chunk_size=1024 * 64):
            if chunk:
                f.write(chunk)

Node.js 示例:使用响应流

import axios from "axios";
import fs from "node:fs";

const resp = await axios.get("https://api.cloudbypass.com/files/report.zip", {
  responseType: "stream",
  headers: {
    "x-cb-apikey": "YOUR_APIKEY",
    "x-cb-host": "target.com",
    "x-cb-version": "2s",
    "x-cb-proxy": "http://user:pass@proxy-host:port",
    "x-cb-timeout": "600",
  },
});

console.log(resp.status, resp.headers["x-cb-status"]);
resp.data.pipe(fs.createWriteStream("report.zip"));

V2s 与 Part 模式

V2s 支持与 V2 相同的 x-cb-part 会话分区。对于需要多次请求同一目标站、复用挑战结果或减少重复验证的场景,可以设置固定的 part。多线程并发时,建议为不同线程分配不同 part,避免同一会话分区被挑战锁占用。

curl --request GET   --url "https://api.cloudbypass.com/accounts/label/lido"   --header "x-cb-apikey: YOUR_APIKEY"   --header "x-cb-host: etherscan.io"   --header "x-cb-version: 2s"   --header "x-cb-part: 0"   --header "x-cb-proxy: http://user:pass@proxy-host:port"

Turnstile 场景如何使用 V2s

如果目标接口同时需要 Turnstile token 和流式响应,V2s 仍然使用 x-cb-sitekey 触发 Turnstile 验证,并在目标接口需要 token 的字段中填写 [cf_token]。如果小部件还有 actioncData,可以按目标站要求配置 x-cb-actionx-cb-cdata

curl --request POST   --url "https://api.cloudbypass.com/api/export"   --header "x-cb-apikey: YOUR_APIKEY"   --header "x-cb-host: target.com"   --header "x-cb-version: 2s"   --header "x-cb-proxy: http://user:pass@proxy-host:port"   --header "x-cb-sitekey: 0x4AAAA..."   --header "content-type: application/json"   --data '{"turnstileToken":"[cf_token]"}'   --output export.csv

从 V2 切换到 V2s

  • x-cb-version: 2 改为 x-cb-version: 2s
  • 保留原来的 x-cb-proxyx-cb-partx-cb-sitekey 等参数。
  • 客户端改成流式读取,例如 Python 使用 stream=True,Node.js 使用 responseType: "stream"
  • 根据文件大小或响应时长设置 x-cb-timeout,V2s 可设置 5-3600 秒。

常见问题

V2s 是否比 V2 更适合所有请求?
不是。普通短响应接口继续使用 V2 即可;只有需要流式响应时才切换 V2s。

V2s 是否仍然需要代理?
需要。V2s 与 V2 一样,必须配置固定或具有时效性的 IP 代理。

V2s 是否支持 Turnstile?
支持。x-cb-sitekey 在 V2/V2s 场景下都可用于 Turnstile 小部件验证。

小结

如果你的业务已经需要 V2 的挑战处理能力,同时响应体较大或需要边下载边处理,就使用 V2s。接入时重点记住三点:版本头写 x-cb-version: 2s,其余 V2 参数保持一致,客户端使用流式读取。