# 🚀 R2 存储快速配置指南

## ✅ 你已完成的配置

- Worker 已部署：`https://ai-image-proxy.uchihasasiky.workers.dev`
- R2 存储桶：`ai-images-cache`
- 配置页面：`worker-config.html`

## 🎯 立即启用 R2 存储（1分钟）

## 前置准备

- ✅ Cloudflare 账号
- ✅ R2 存储桶：`ai-images-cache`（你已创建）
- ✅ 安装 wrangler：`npm install -g wrangler`

## 快速部署（5分钟）

### 1️⃣ 登录 Cloudflare

```bash
wrangler login
```

### 2️⃣ 部署 Worker

```bash
cd workers
wrangler deploy
```

部署成功后会显示：
```
Uploaded ai-image-proxy (1.23 sec)
Published ai-image-proxy (0.45 sec)
  https://ai-image-proxy.你的子域名.workers.dev
```

**⚠️ 记下这个 URL！**

### 3️⃣ 配置 Worker URL

有三种方式：

#### 方式 A：使用配置助手（推荐）

1. 在浏览器打开 `setup-r2-config.html`
2. 输入你的 Worker URL
3. 点击"保存到本地"

#### 方式 B：手动设置

在浏览器控制台运行：
```javascript
localStorage.setItem('worker_url', 'https://ai-image-proxy.你的子域名.workers.dev')
```

#### 方式 C：硬编码到代码

编辑 `js/services/r2-storage.js` 第 81 行：
```javascript
workerUrl: 'https://ai-image-proxy.你的子域名.workers.dev',
```

### 4️⃣ 测试

1. 打开应用：`python3 -m http.server 8000`
2. 访问：`http://localhost:8000`
3. 生成一张图片
4. 打开控制台，应看到：`正在将图片上传到 R2 存储...`

## 可选：自定义域名

如果你想用 `r2.imagen.apiyi.com` 替代 Workers 子域名：

### Cloudflare Dashboard 方式

1. 登录 [Cloudflare Dashboard](https://dash.cloudflare.com)
2. 进入 Workers & Pages
3. 选择 `ai-image-proxy`
4. 点击 "Custom Domains"
5. 添加域名：`r2.imagen.apiyi.com`

### 命令行方式

```bash
wrangler domains add r2.imagen.apiyi.com
```

## 验证部署

### 检查 Worker 状态

```bash
# 查看部署信息
wrangler deployments list

# 查看实时日志
wrangler tail
```

### 检查 R2 存储

```bash
# 列出 R2 文件
wrangler r2 object list ai-images-cache

# 查看存储统计
wrangler r2 bucket info ai-images-cache
```

### 在应用中验证

打开浏览器控制台：
```javascript
// 检查 R2 服务状态
console.log(window.r2Storage.getStorageStats())

// 手动测试上传
const testData = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg=='
await window.r2Storage.uploadBase64(testData)
```

## 故障排查

### 问题：Worker 部署失败

```bash
# 检查配置
cat workers/wrangler.toml

# 确保 R2 存储桶存在
wrangler r2 bucket list
```

### 问题：CORS 错误

确保 Worker 的域名白名单包含你的域名：
- `localhost`
- `127.0.0.1`
- `imagen.apiyi.com`

### 问题：签名验证失败

检查时间同步：
```bash
# 确保系统时间正确
date
```

## 生产环境部署

### 1. 部署配置文件

创建 `https://imagen.apiyi.com/api/config/r2-storage`：

```json
{
  "workerUrl": "https://r2.imagen.apiyi.com",
  "features": {
    "autoCache": true,
    "maxFileSize": 10485760,
    "ttl": 2592000
  }
}
```

### 2. 更新 Worker

```bash
wrangler deploy --env production
```

### 3. 监控

- 查看 Workers 分析
- 设置 R2 使用量警报
- 配置日志收集

## 成功标志

✅ Worker 部署成功
✅ 本地能访问 Worker URL
✅ 图片生成后显示 "正在上传到 R2"
✅ 历史记录页面显示 "☁️ 云存储已启用"
✅ localStorage 使用量明显减少

## 需要帮助？

- 查看详细文档：`docs/r2-deployment.md`
- 使用配置助手：`setup-r2-config.html`
- 运行部署脚本：`bash deploy-r2.sh`

---

**预计耗时**：5-10 分钟
**难度**：⭐⭐☆☆☆