fastapi实现大文件上传

网上很多说的,包括官网说的,用UploadFile可以解决大文件上传,

基本上都是吹牛逼,

现在的文件,动不动就是几百兆,几G的文件,

UploadFile能解决啥,

用一台2核4G的服务器测试过,UploadFile最多只能支持100多兆的文件上传。

文件超过150兆~200兆就悬了,看命,命好的话,服务器刚好缓存比较多,上传成功。

命差的话,直接撑爆缓存,上传失败

所以,大文件上传,有且只有一条路子,分片上传

废话不说了,直接上代码

一、文件上传接口,如下:


@router.post("/upload/uploadfile")
async def upload_big_file(file: UploadFile = File(...), chunknumber: str = Form(...), identifier: str = Form(...)):#分片上传文件【用唯一标志符+分片序号】作为文件名
    if len(chunknumber) == 0 or len(identifier) == 0:
        return {"eroor": "没有传递相关参数"}
    task = identifier                           # 获取文件唯一标识符
    chunk = chunknumber                         # 获取该分片在所有分片中的序号【客户端设定】
    filename = '%s%s' % 

你可能感兴趣的:(fastapi,python,服务器,fastapi)