在日常工作中,我们可能会遇到需要批量下载图片的场景。比如,你有一个包含 10 万条图片链接的文本文件,你需要将这些图片下载到本地。为了提高效率和可靠性,我们可以使用 Python 和 AWS S3 来实现这个任务。
准备工作
首先,我们需要安装 boto3
库,它是 AWS SDK for Python 的一部分。你可以使用 pip
进行安装:
pip install boto3
接下来,我们需要配置 AWS 凭证。你可以通过环境变量或者 AWS 配置文件来设置。
编写脚本
以下是一个示例脚本,它可以从文本文件中读取图片 URL,并将其下载到本地 img
文件夹中:
import boto3
import os
from urllib.parse import urlparse
# AWS 区域
region = 'us-east-1'
# S3 桶名称和前缀
bucket_name = 'bucket-img'
prefix = 'img'
# 创建 S3 客户端
s3 = boto3.client('s3', region_name=region)
# 从文件读取图片 URL
with open('1.txt', 'r') as f:
image_urls = [url.strip() for url in f.readlines()]
# 创建 img 文件夹
if not os.path.exists('img'):
os.makedirs('img')
# 下载图片
for url in image_urls:
parsed_url = urlparse(url)
key = os.path.basename(parsed_url.path)