pthon MinIO实现前端传过来的图片上传
时间: 2024-03-05 10:53:11 浏览: 252
要实现前端传过来的图片上传到MinIO,可以使用Python的Flask框架。具体步骤如下:
1. 安装MinIO的Python客户端库
可以使用以下命令进行安装:
```
pip install minio
```
2. 编写Flask应用程序
在Flask应用程序中,需要提供一个路由,用于接收前端传过来的图片,并将其上传到MinIO。可以使用以下代码实现:
```python
from flask import Flask, request
from minio import Minio
from minio.error import ResponseError
app = Flask(__name__)
# 连接到MinIO服务端
client = Minio('minio.example.com',
access_key='ACCESS_KEY',
secret_key='SECRET_KEY',
secure=False)
@app.route('/upload', methods=['POST'])
def upload():
# 获取上传的文件
file = request.files['file']
try:
# 上传文件
client.put_object('bucket-name', file.filename, file.stream,
length=file.content_length,
content_type=file.content_type)
except ResponseError as err:
return str(err), 500
return 'Upload successfully'
if __name__ == '__main__':
app.run()
```
其中,`/upload`路由用于接收前端发送的POST请求,该请求中包含了上传的文件。在`upload`函数中,首先从请求中获取上传的文件,然后使用MinIO客户端库将文件上传到指定的存储桶中。
3. 编写前端页面
可以使用HTML和JavaScript编写一个简单的前端页面,用于上传图片。可以使用以下代码实现:
```html
<!DOCTYPE html>
<html>
<body>
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="Upload">
</form>
</body>
</html>
```
在表单中,使用`enctype="multipart/form-data"`指定表单数据以二进制形式进行传输,在`<input>`标签中使用`type="file"`指定上传的文件类型。
4. 运行Flask应用程序
保存以上代码为`app.py`文件,并使用以下命令运行Flask应用程序:
```
python app.py
```
Flask应用程序将会运行在默认端口5000上。在浏览器中输入`http://localhost:5000`,可以打开前端页面,上传图片并将其存储到MinIO中。
阅读全文