feat: 批量下载脚本、依赖文件、说明书

This commit is contained in:
afei A
2026-03-19 13:47:53 +08:00
parent 1edabd6d3b
commit 25059a50a2
8 changed files with 368 additions and 3 deletions

130
README.md Normal file
View File

@@ -0,0 +1,130 @@
# SAP C4C 附件批量下载工具
从 SAP C4C 下载 Ticket 附件并上传到群晖 DSM。
---
## 环境要求
- Python >= 3.8
- Ubuntu 20.04+ 或 macOS
---
## 安装
```bash
pip install -r requirements.txt
python -m playwright install chromium
# Ubuntu 需额外执行(需要 sudo
python -m playwright install-deps chromium
```
---
## 文件说明
| 文件 | 说明 |
|---|---|
| `sap-c4c-AttachmentFolder.py` | 核心下载脚本,支持单个 Ticket 下载 |
| `batch_download.py` | 批量下载脚本,从 CSV 读取 ID 并行执行 |
| `get_ticket_ids.py` | 从 CSV 提取 Ticket ID 工具 |
| `datasource/` | 存放 SAP Analytics 导出的 CSV 文件 |
| `downloads/` | 本地临时下载目录(上传 DSM 后自动清理) |
| `error_log.txt` | 错误日志,每次批量运行时重置 |
---
## 单个 Ticket 下载
```bash
python sap-c4c-AttachmentFolder.py \
--tenant https://my300375.c4c.saphybriscloud.cn \
--user admin \
--password 'your_password' \
--ticket 20950 \
--output-dir ./downloads
```
### 同时上传到群晖 DSM
```bash
python sap-c4c-AttachmentFolder.py \
--tenant https://my300375.c4c.saphybriscloud.cn \
--user admin \
--password 'your_password' \
--ticket 20950 \
--output-dir ./downloads \
--dsm-url http://10.0.10.235:5000 \
--dsm-user PLM \
--dsm-password 'dsm_password' \
--dsm-path /Newgonow/AU-SPFJ
```
### 仅列出附件不下载
```bash
python sap-c4c-AttachmentFolder.py ... --list-only
```
### JSON 输出模式
```bash
python sap-c4c-AttachmentFolder.py ... --json
```
---
## 批量下载
将 SAP Analytics 导出的 CSV 文件放入 `datasource/` 目录,然后运行:
```bash
python batch_download.py
```
- 默认读取 CSV 第二列的 Ticket ID取前 10 个
- 最多 5 个任务并行执行
- 每个 Ticket 使用独立子目录 `downloads/{ticket_id}`,避免并行冲突
- 上传 DSM 完成后自动清理本地文件和子目录
- 错误记录到 `error_log.txt`
### 修改并行数或 Ticket 数量
编辑 `batch_download.py` 顶部配置:
```python
WORKERS = 5 # 并行数
# get_ticket_ids(10) 中的 10 为读取数量
```
---
## DSM 目录结构
上传后文件按以下结构组织:
```
{dsm_path}/
└── {ticket_id}_{serial_id}/
└── {issue_id}_{issue_description}/
└── 附件文件
```
> `Quote & Chassis` 类型的附件会同时复制到所有其他 issue 目录下。
---
## 环境变量(可选)
也可通过环境变量代替命令行参数:
| 环境变量 | 对应参数 |
|---|---|
| `C4C_TENANT` | `--tenant` |
| `C4C_USERNAME` | `--user` |
| `C4C_PASSWORD` | `--password` |
| `DSM_URL` | `--dsm-url` |
| `DSM_USERNAME` | `--dsm-user` |
| `DSM_PASSWORD` | `--dsm-password` |
| `DSM_PATH` | `--dsm-path` |