r2-uploader
# R2 文件上传
使用 wrangler CLI 上传文件到 Cloudflare R2 对象存储。
## 环境变量
| 变量 | 说明 |
|------|------|
| `$R2_BUCKET` | R2 存储桶名称(也可由用户指定) |
| `$R2_DOMAIN` | 自定义域名(可选,未设置则用默认 URL) |
## 核心流程
### 1. 定位文件
```bash
# 用户提供文件名时,查找文件
find ~ -name "<filename>" -type f 2>/dev/null | head -5
# 验证文件存在
ls -la "<file-path>"
```
### 2. 生成路径
```bash
R2_PATH="agent/$(date +%Y%m%d)/$(basename "<file>")"
```
### 3. 执行上传
```bash
wrangler r2 object put "$R2_BUCKET/$R2_PATH" --file "<file-path>" --remote
```
### 4. 返回 URL
```bash
# 有自定义域名
echo "https://$R2_DOMAIN/$R2_PATH"
# 无自定义域名(默认)
echo "https://pub-<account-id>.r2.dev/$R2_PATH"
```
## 从 URL 直接上传
```bash
curl -sL "<url>" | wrangler r2 object put "$R2_BUCKET/$R2_PATH" --file - --remote
```
## 常用管理命令
```bash
# 列出 buckets
wrangler r2 bucket list
# 删除对象
wrangler r2 object delete "<bucket>/<path>/<file>" --remote
```
## 高级功能与错误处理
- **批量上传、并发上传**: 见 [references/advanced.md](references/advanced.md)
- **错误处理、重试机制、特殊路径**: 见 [references/error-handling.md](references/error-handling.md)
标签
skill
ai