Minio对象存储客户端开发官方文档地址:https://docs.min.io/cn/python-client-quickstart-guide.html本文地址:http://www.04007.cn/article/935.html,未经许可,不得转载.
我这里是已经搭建好minio服务端,设置好用户权限(某个账号只能操作一个bucket),然后调试好了FastAPI框架的文件上传逻辑,见地址: http://www.04007.cn/article/934.html 在此基础上,将使用postman上传的文件直接上传至minio对象存储中。本文地址:http://www.04007.cn/article/935.html,未经许可,不得转载.
要在python中使用minio存储客户端,需要先安装minio模块。minio模块依赖于configparser,也会自动安装。如下:本文地址:http://www.04007.cn/article/935.html,未经许可,不得转载.
#环境搭建 $ pip install minio Collecting minio Downloading minio-6.0.0-py2.py3-none-any.whl (72 kB) Collecting configparser Downloading configparser-5.0.1-py3-none-any.whl (22 kB) Installing collected packages: configparser, minio Successfully installed configparser-5.0.1 minio-6.0.0本文地址:http://www.04007.cn/article/935.html,未经许可,不得转载.
下面是在fastapi框架中将postman上传上来的文件直接上传至minio服务器,最后上传成功返回的json示例:{"old_name":"test.txt","tmp_name":"tmpoa8z28u9.txt"},完整代码如下:本文地址:http://www.04007.cn/article/935.html,未经许可,不得转载.
from minio import Minio from minio.error import ResponseError @app.post("/test/fileupload", summary="UploadFile方式") async def test_fileupload(files: UploadFile=File(...)): save_dir = "./uploads" try: suffix = Path(files.filename).suffix #创建一个临时文件并写入 with NamedTemporaryFile(delete=Falst, suffix=suffix, dir=save_dir) as tmp: shutil.copyfileoby(files.file, tmp) tmp_file_name = Path(tmp.name).name finally: files.file.close() # 连接minio服务端写入文件 minioClient = Minio('127.0.0.1:9000', access_key='test', secret_key='1234567890', secure=False) try: minioClient.fput_object('test', tmp_file_name, tmp_file_name) except ResponseError as err: print(err) return {"old_name":files.filename, "tmp_name":tmp_file_name}本文地址:http://www.04007.cn/article/935.html,未经许可,不得转载.
本文地址:http://www.04007.cn/article/935.html 未经许可,不得转载. 手机访问本页请扫描右下方二维码.
![]() |
![]() |
手机扫码直接打开本页面 |