# API 参考
## Workers 绑定 API
toml
# wrangler.toml
[images]
binding = "IMAGES"
### 转换图像
typescript
const imageResponse = await env.IMAGES
.input(fileBuffer)
.transform({ width: 800, height: 600, fit: "cover", quality: 85, format: "avif" })
.output();
return imageResponse.response();
### 转换选项
typescript
interface TransformOptions {
width?: number; height?: number;
fit?: "scale-down" | "contain" | "cover" | "crop" | "pad";
quality?: number; // 1-100
format?: "avif" | "webp" | "jpeg" | "png";
dpr?: number; // 1-3
gravity?: "auto" | "left" | "right" | "top" | "bottom" | "face" | string;
sharpen?: number; // 0-10
blur?: number; // 1-250
rotate?: 90 | 180 | 270;
background?: string; // 用于 pad 的 CSS 颜色
metadata?: "none" | "copyright" | "keep";
brightness?: number; contrast?: number; gamma?: number; // 0-2
}
### 绘制/水印
typescript
await env.IMAGES.input(baseImage)
.draw(env.IMAGES.input(watermark).transform({ width: 100 }), { top: 10, left: 10, opacity: 0.8 })
.output();
## REST API
### 上传图像
bash
curl -X POST https://api.cloudflare.com/client/v4/accounts/{account_id}/images/v1
-H "Authorization: Bearer {token}" -F
[email protected] -F metadata='{"key":"value"}'
### 其他操作
bash
GET /accounts/{account_id}/images/v1/{image_id} # 获取详情
DELETE /accounts/{account_id}/images/v1/{image_id} # 删除
GET /accounts/{account_id}/images/v1?page=1 # 列表
## URL 转换 API
https://imagedelivery.net/{hash}/{id}/width=800,height=600,fit=cover,format=avif
**参数:** `w=`, `h=`, `fit=`, `q=`, `f=`, `dpr=`, `gravity=`, `sharpen=`, `blur=`, `rotate=`, `background=`, `metadata=`
## 直接创建者上传
typescript
// 1. 获取上传 URL (后端)
const { result } = await fetch(
`https://api.cloudflare.com/client/v4/accounts/${accountId}/images/v2/direct_upload`,
{ method: 'POST', headers: { 'Authorization': `Bearer ${token}` },
body: JSON.stringify({ requireSignedURLs: false }) }
).then(r => r.json());
// 2. 客户端上传至 result.uploadURL
const formData = new FormData();
formData.append('file', file);
await fetch(result.uploadURL, { method: 'POST', body: formData });
## 错误代码
| 代码 | 消息 | 解决方案 |
|------|---------|----------|
| 5400 | 无效格式 | 使用 JPEG, PNG, GIF, WebP |
| 5401 | 太大 | 最大 100MB |
| 5403 | Inv