# Lsky Telegram Upload Worker `lsky-telegram-worker.js` 用于把 Telegram 私聊发送的图片或图片文件上传到 Lsky Pro。上传成功后,Bot 会回复 Markdown 图片链接,并使用 Telegram HTML `
` 代码块渲染,便于 Android 客户端点击复制。

## 功能

- 支持 Telegram `photo` 和图片类 `document`。
- 支持 Telegram `media_group_id` 相册收集后批量上传。
- 默认单文件大小限制为 `500.00 MB`,可用 `MAX_FILE_MB` 覆盖。
- 默认上传队列最多收 `500` 张,可用 `MAX_UPLOAD_QUEUE_IMAGES` 覆盖。
- 返回格式为 `![filename](url)`,并关闭网页预览。
- 通过 `ALLOWED_TELEGRAM_USER_IDS` 限制可用用户。

## 必需绑定和环境变量

| 名称 | 说明 |
| --- | --- |
| `DB` | Cloudflare D1 数据库绑定名,用于暂存相册队列 |
| `TELEGRAM_BOT_TOKEN` | Telegram Bot Token |
| `TELEGRAM_WEBHOOK_SECRET` | Telegram Webhook secret token,同时用于 `/init` 初始化鉴权 |
| `ALLOWED_TELEGRAM_USER_IDS` | 允许使用的 Telegram user id,多个用英文逗号分隔 |
| `LSKY_API_URL` | Lsky Pro 上传 API 地址 |
| `LSKY_TOKEN` | Lsky Pro API token |

## 可选环境变量

| 名称 | 默认值 | 说明 |
| --- | --- | --- |
| `MAX_FILE_MB` | `500.00` | 单个 Telegram 图片/文件大小上限,单位 MB |
| `MAX_UPLOAD_QUEUE_IMAGES` | `500` | 单个上传队列最多暂存图片数量 |
| `ALBUM_WAIT_SECONDS` | `5` | 相册收集等待秒数 |
| `LSKY_PERMISSION` | `1` | 传给 Lsky Pro 的 `permission` |
| `LSKY_STRATEGY_ID` | 空 | 传给 Lsky Pro 的 `strategy_id` |

## 部署流程

1. 创建 Telegram Bot,拿到 `TELEGRAM_BOT_TOKEN`。
2. 创建 Cloudflare D1 数据库,并在 Worker 中绑定为 `DB`。
3. 创建 Worker,把 [lsky-telegram-worker.js](lsky-telegram-worker.js) 作为 Worker 代码。
4. 配置上方环境变量。
5. 访问 `https:///init?secret=` 初始化 D1 表。
6. 设置 Telegram Webhook:

```bash
curl -X POST "https://api.telegram.org/bot/setWebhook" \
  -d "url=/webhook" \
  -d "secret_token="
```

7. 访问 Worker 根路径,若返回 `Lsky Telegram Worker OK - code-block-max500mb-queue500-2026-05-27`,说明 Worker 基本可用。