V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
Pters
V2EX  ›  Python

新手请问我这样处理文件上传对不对

  •  
  •   Pters · 12 天前 · 1074 次点击

    后端是 fastapi ,前端 react ,这两个语言我只业余时间摸索了一个月,现在的需求是多用户上传大文件,我现在的流程是,前端判断类型,大小,MD5 等去重 -> 然后后端判断 类型,大小,MD5 去重 -> 后端保存,执行长耗时任务 -> 丢到 celery work 队列处理,redis 处理消息 -> redis 订阅消息,然后 websocket 发送到前端。这样说不知道对不对,是否过于繁琐,有啥好的方法推荐?前提是基于这俩语言,谢谢!

    10 条回复    2024-04-19 11:25:17 +08:00
    zhufpy
        1
    zhufpy  
       12 天前
    大文件,用 obs
    Pters
        2
    Pters  
    OP
       12 天前
    @zhufpy 就是最大 5gb 每个
    makerbi
        3
    makerbi  
       12 天前
    你自己的服务器管理大文件?一般来说 GB 级了用 OSS 更方便吧
    zhufpy
        4
    zhufpy  
       12 天前
    @Pters 不能是本地存储吧,直接上第三方 obs 呗。
    Pters
        5
    Pters  
    OP
       12 天前
    @makerbi 不是单纯的存储文件,是对文件分析签名等,是不是必须得本地处理
    guanzhangzhang
        6
    guanzhangzhang  
       12 天前
    正规项目是返回 sts token ,分片向对象存储上传
    morty2
        7
    morty2  
       12 天前
    我现在这个项目也用 fastapi+react 实现大文件上传,用 filepond 前端库解决的。
    vivisidea
        8
    vivisidea  
       12 天前
    直接搭一个 Minio ,或者直接用现成的 OSS 这类服务,稳定可靠
    morenacl
        9
    morenacl  
       11 天前
    用 oss
    chesha1
        10
    chesha1  
       11 天前
    最好不要经过后端吧,直接上传到对象存储,节约带宽

    如果你有对文件进一步处理的需求,也从对象存储拉到服务器上更好,用户上传到后端是公网的小水管,但是用户传到对象存储用的是公网的大水管,对象存储到服务器是内网的更大水管,节约带宽

    而且你还可以用云函数,不一定要真的手动取到后端来运算
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   808 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 21:32 · PVG 05:32 · LAX 14:32 · JFK 17:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.