【FastAPI基础】17.2、接入docker minio文件服务器操作文件,附源码
2021/4/12 20:29:39
本文主要是介绍【FastAPI基础】17.2、接入docker minio文件服务器操作文件,附源码,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
引言:
最近工作中有机会接触FastAPI这个框架,所以就把官方文档看了一遍,对框架的各个特性及使用方法做了总结,会逐步的发出来,希望对您有用。
如果您之前接触过python的其他框架,看起来会非常简单和顺畅,其实就是很简单。
【上一篇】:【FastAPI基础】17、文件操作
【下一篇】:【FastAPI基础】18、表单和文件操作
【FastAPI搭建好的产品框架源码,直接上手】:【FastAPI搭建好的产品架构】,直接上手
废话不多说,直接上源码,复制直接用呗,其他的就不粘贴了,没啥特别的。
如有需要help,下面私信我
# encoding: utf-8 """ @author: 陈建华 @file: views_minio.py @time: 2021/4/8 10:26 """ import platform import shutil import time import datetime from typing import List from tempfile import NamedTemporaryFile from fastapi import APIRouter, File, Form, UploadFile, status, Query from minio import Minio # from starlette.requests import Request from server.app_file.schemas.file_schems import SystemFileIn from server.app_file.models.file_model import system_file_db from server import config from server.command.extensions.responses import ResponsesExampleVale from server.command.schemas import response_data router = APIRouter() @router.post( "/upload/", tags=["图片上传"], # dependencies=[Depends(verify_token)], responses=ResponsesExampleVale( { "code": 200, "message": "上传成功!", "content": { "id": "图片id" } } ) ) async def picture_upload( # request: Request, image_type: str = Form(..., description = "图片类型"), file: UploadFile = File(..., description = "文件流"), ): if image_type not in config.PICTURE_LIST: return response_data(code=status.HTTP_404_NOT_FOUND, message=f"不存在的图片类型", data={}) sys_type = platform.system() if sys_type == 'Windows': temporary_delete = False else: temporary_delete = True with NamedTemporaryFile(delete=temporary_delete) as tmp: shutil.copyfileobj(file.file, tmp) file_client = Minio(config.MinIO_URL, access_key=config.MinIO_ACCESS_KEY, secret_key=config.MinIO_SECRET_KEY, secure=config.MinIO_SECURE) upload_name = str(int(time.mktime(time.localtime()))) + '.' + file.filename.split('.')[1] file_name = file.filename # bucket_name我这儿设置成了图片类型,看下面的图 file_client.fput_object(bucket_name=image_type, object_name=upload_name, file_path=tmp.name, content_type=file.content_type) # 存入自己本地 insert_dict = SystemFileIn(**{'name': file_name, 'path': f'http://{config.MinIO_URL}/{image_type}/{upload_name}', 'type': image_type, 'size': file_client.stat_object(image_type, upload_name).size / 1024, 'notes': upload_name, 'status': '1', 'create_time': datetime.datetime.now()}) return response_data(data=await system_file_db.create(insert_dict))
这是minio服务的样子:
这篇关于【FastAPI基础】17.2、接入docker minio文件服务器操作文件,附源码的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27docker容器内没有bash,怎么通过docker exec -it进入容器内部?-icode9专业技术文章分享
- 2024-12-26alpine构建的镜像无法使用docker exec -it 进入内部怎么办?-icode9专业技术文章分享
- 2024-12-24Docker环境部署资料详解
- 2024-12-24Docker环境部署教程:新手入门详解
- 2024-12-24Docker环境部署项目实战教程
- 2024-12-24Docker环境部署学习:初学者指南
- 2024-12-24Docker环境部署入门:新手必读指南
- 2024-12-20Docker部署资料:新手入门教程
- 2024-12-19Docker部署实战:新手入门教程
- 2024-12-19Docker部署教程:新手入门详解