File 上传小文件
from typing import List from fastapi import FastAPI, File import uvicorn app = FastAPI() @app.post('/file') async def up_file( file: bytes = File(...), # files: List[bytes] = File(...) # 一次性上传多个小文件 ): """ 会把整个文件加载到内存,可能会出现爆内存的情况 只能上传小文件,能获取字节长度,文件的其他属性不能获取到 :param file: :return: """ return {'file_length': len(file)} if __name__ == '__main__': uvicorn.run(app)
UpLoadFile 上传大文件
from typing import List from fastapi import FastAPI, File, UploadFile import uvicorn app = FastAPI() @app.post('/up_file') async def up_file( file: UploadFile = File(...), # files: List[UploadFile] = File(...) # 一次性上传多个文件 ): """ UploadFile 的优势: - 文件存储在内存,达到阈值后,将保存到磁盘中 - 适用于 图片、视频大文件 ... - 可以获取上传文件的元数据,如 文件名、类型、创建时间 ... - 有文件对象的异步接口 - 上传的文件是 Python文件对象,可以使用 write()、read()、seed()、close() 进行操作 """ file_content = await file.read() # 读取文件 print(file_content) return { 'file_name': file.filename, 'file_type': file.content_type, } if __name__ == '__main__': uvicorn.run(app)
版权声明:《 【FastAPI】File & UpLoadFile 上传文件的使用 》为明妃原创文章,转载请注明出处!
最后编辑:2022-2-13 10:02:39