[ PROMPT_NODE_23968 ]
API 配置说明
[ SKILL_DOCUMENTATION ]
# 配置
## 环境变量
### 设置变量
| 平台 | 命令 |
|----------|---------|
| Linux/macOS | `export CLOUDFLARE_API_TOKEN='token'` |
| PowerShell | `$env:CLOUDFLARE_API_TOKEN = 'token'` |
| Windows CMD | `set CLOUDFLARE_API_TOKEN=token` |
**安全性:** 切勿提交 Token。请使用 `.env` 文件(已加入 gitignore)或密钥管理服务。
### .env 文件模式
bash
# .env (添加到 .gitignore)
CLOUDFLARE_API_TOKEN=your-token-here
CLOUDFLARE_ACCOUNT_ID=your-account-id
typescript
// TypeScript
import 'dotenv/config';
const client = new Cloudflare({
apiToken: process.env.CLOUDFLARE_API_TOKEN,
});
python
# Python
from dotenv import load_dotenv
load_dotenv()
client = Cloudflare(api_token=os.environ["CLOUDFLARE_API_TOKEN"])
## SDK 配置
### TypeScript
typescript
const client = new Cloudflare({
apiToken: process.env.CLOUDFLARE_API_TOKEN,
timeout: 120000, // 2 分钟 (默认 60s),单位毫秒
maxRetries: 5, // 默认 2
baseURL: 'https://...', // 代理 (罕见)
});
// 单次请求覆盖
await client.zones.get(
{ zone_id: 'zone-id' },
{ timeout: 5000, maxRetries: 0 }
);
### Python
python
client = Cloudflare(
api_token=os.environ["CLOUDFLARE_API_TOKEN"],
timeout=120, // 秒 (默认 60)
max_retries=5, // 默认 2
base_url="https://...", // 代理 (罕见)
)
// 单次请求覆盖
client.with_options(timeout=5, max_retries=0).zones.get(zone_id="zone-id")
### Go
go
client := cloudflare.NewClient(
option.WithAPIToken(os.Getenv("CLOUDFLARE_API_TOKEN")),
option.WithMaxRetries(5), // 默认 10 (高于 TS/Python)
option.WithRequestTimeout(2 * time.Minute), // 默认 60s
option.WithBaseURL("https://..."), // 代理 (罕见)
)
// 单次请求覆盖
client.Zones.Get(ctx, "zone-id", option.WithMaxRetries(0))
## 配置选项
| 选项 | TypeScript | Python | Go | 默认值 |
|--------|-----------|--------|-----|---------|
| 超时 | `timeout` (ms) | `timeout` (s) | `WithRequestTimeout` | 60s |
| 重试 | `maxRetries` | `max_retries` | `WithMaxRetries` | 2 (Go: 10) |
| 基础 URL | `baseURL` | `base_url` | `WithBaseURL` | api.cloudflare.com |
**注意:** Go SDK 的默认重试次数 (10) 高于 TypeScript/Python (2)。
## 超时配置
**何时增加超时:**
- 大规模区域迁移
- 批量 DNS 操作
- Worker 脚本上传
typescript
const client = new Cloudflare({
timeout: 300000, // 5