98 lines
2.5 KiB
Markdown
98 lines
2.5 KiB
Markdown
---
|
||
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/文件名.扩展名
|
||
- 上传确认:返回文件哈希或上传链接
|
||
- 完成状态:成功/失败报告 |