python代码 下载minio图片报错使程序继续运行
时间: 2024-02-28 17:53:56 浏览: 145
以下是 Python 代码下载 Minio 图片并捕获异常使程序继续运行的示例:
```python
import os
import requests
from urllib.parse import urlparse
from minio import Minio
from minio.error import ResponseError
# 初始化 Minio 客户端
minio_client = Minio('minio.example.com',
access_key='ACCESS_KEY',
secret_key='SECRET_KEY',
secure=True)
# 下载图片并捕获异常
def download_image(bucket_name, object_name, file_path):
try:
# 获取图片的URL
presigned_url = minio_client.presigned_get_object(bucket_name, object_name)
# 解析URL获取图片的文件名
file_name = os.path.basename(urlparse(presigned_url).path)
# 发起HTTP请求下载图片
response = requests.get(presigned_url, stream=True, timeout=10)
# 如果HTTP状态码不是200,则抛出异常
response.raise_for_status()
# 将图片保存到本地文件
with open(os.path.join(file_path, file_name), 'wb') as f:
for chunk in response.iter_content(1024):
f.write(chunk)
except (ResponseError, requests.exceptions.RequestException) as e:
print(f"下载图片失败:{e}")
# 在这里添加异常处理代码,例如打印错误日志或者发送邮件通知管理员
# 调用 download_image 函数下载图片
download_image('my-bucket', 'image.jpg', '/path/to/save/image')
```
在上面的代码中,我们通过 try-except 语句来捕获 Minio 客户端和 HTTP 请求可能会抛出的异常,并在 except 分支中添加相应的异常处理代码。如果在下载图片的过程中出现异常,程序会继续执行,而不会因为异常而中断。
阅读全文