---
name: bulk-image-download-upload
title: 批量图片下载和上传工作流程
description: 从网络搜索获取图片，批量下载到本地，然后上传到文件存储服务（如Seafile）的完整工作流程
category: media-publisher
---

# 批量图片下载和上传工作流程

## 适用场景

当需要从网络搜索获取大量图片，下载到本地后批量上传到文件存储服务时使用。

## 工作流程

### 1. 图片搜索和下载

**方法A：直接下载（推荐）**
```bash
# 使用wget批量下载图片
cd /tmp
wget -O image1.jpg "图片URL1" && wget -O image2.jpg "图片URL2" && ...
```

**方法B：浏览器自动化（备选）**
- 使用浏览器导航到图片搜索页面
- 点击图片获取大图链接
- 使用browser_get_images获取图片信息
- 注意：可能遇到超时或API限制问题

### 2. 文件上传

**Seafile上传（推荐）**
```bash
# 使用现有的Seafile上传脚本
bash /path/to/seafile_upload.sh /本地文件路径 [目标文件名]

# 批量上传循环
for i in {1..N}; do
  echo "上传文件$i"
  bash /path/to/seafile_upload.sh /tmp/file${i}.jpg
done
```

**其他上传方式（备选）**
- 使用curl直接上传到其他文件存储服务
- 使用Python脚本处理复杂的上传逻辑

### 3. 验证和清理

```bash
# 验证文件是否下载成功
ls -lh /tmp/*.jpg

# 清理临时文件（可选）
trash /tmp/*.jpg
```

## 关键技巧

1. **优先使用直接下载**：当浏览器自动化遇到问题时，直接下载图片更可靠
2. **批量处理**：使用循环处理多个文件，提高效率
3. **错误处理**：检查每个步骤的输出，确保操作成功
4. **文件格式**：注意不同服务的图片格式要求

## 常见问题解决

- **浏览器超时**：切换到直接下载方法
- **API限制**：使用本地工具替代
- **认证失败**：检查上传脚本中的认证信息
- **文件损坏**：重新下载或检查网络连接

## 最佳实践

1. 下载前创建临时目录
2. 下载后立即验证文件完整性
3. 上传前检查文件大小和格式
4. 记录每个文件的上传状态
5. 完成后清理临时文件

## 工具链

- 终端（bash）- 核心工具
- wget - 图片下载
- Seafile上传脚本 - 文件存储
- ls, trash - 文件管理

## 适用平台

- Seafile（推荐）
- 其他支持curl上传的文件存储服务
- 本地文件管理

## 输出格式

- 下载文件：/tmp/文件名.扩展名
- 上传确认：返回文件哈希或上传链接
- 完成状态：成功/失败报告