Files
c4c-download/README.md

131 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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` |