# promotion-import

将 `web/promotion/视频发布/` 下映射表中的文件复制到 **`{upload}/sites/{site_id}/promotion/social/`**，并在 **`site_assets`** 集合插入记录（与后台「保留原文件名」上传到 `promotion/social` 一致）。

对「操作与计算（一）（二）」会尝试多组路径名、半角括号、子目录内**最大** `.mov`；若仍无法按「一/二」识别文件夹，会在 `视频发布` 下找出**恰好两个**含「实例」的兄弟目录（排除 AIWord/语音/发票），排序后**第一个 → demo-1、第二个 → demo-2**（文件夹名不含「一」也能配对）。

## 参数

| 参数 | 说明 |
|------|------|
| `-site` | 必填，站点 MongoDB `_id` 字符串 |
| `-src` | 可选，`视频发布` 目录；默认 `{项目根}/web/promotion/视频发布` |
| `-upload` | 可选，上传根目录；默认 `UPLOAD_DIR` 环境变量或 `{项目根}/data/uploads` |
| `-dry-run` | 只打印计划，不写盘、不写库 |

环境变量与主程序相同：`MONGODB_URI`、`MONGODB_DB`（见 `server/.env`）。

## 示例

```bash
cd server
go run -mod=vendor ./cmd/promotion-import/ -site=69ba1f1f41aeb82acfd609ef
```

Docker 部署时请在**宿主机**对挂载的 `data/uploads` 执行，路径示例：

```bash
./scripts/import-promotion-to-api.sh -site=xxx \
  -src=/www/yh_web/web/promotion/视频发布 \
  -upload=/www/yh_web/data/uploads
```

导入后无需重启 API；`promotion-media` 立即可读。
