V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
johnlin
V2EX  ›  问与答

前端上传文件到问题

  •  
  •   johnlin · 2021-08-23 11:52:52 +08:00 · 1126 次点击
    这是一个创建于 1186 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景:前端上传文件到七牛云,前端项目已经部署在服务器 A 上,本地通过 js 上传一个 100MB 的文件到七牛云
    问题:内部上传流程
    A:这个 100MB 的文件是先上传到服务器 A,然后在上传到七牛云,因为 js 无法读取本地文件?
    B:100MB 直接上传到七牛云?

    9 条回复    2021-08-24 10:06:14 +08:00
    napsterwu
        1
    napsterwu  
       2021-08-23 12:57:05 +08:00 via iPhone
    正确做法是在前端把文件分成 20*5 上传到七牛云
    napsterwu
        2
    napsterwu  
       2021-08-23 12:57:45 +08:00 via iPhone
    为啥无法读取?分片上传很成熟的,你去搜一下
    cxe2v
        3
    cxe2v  
       2021-08-23 14:20:52 +08:00
    js 无法读取本地文件?那网盘怎么传文件的?

    还是说你想要自动扫描硬盘上传文件?

    那我只能说你的思想有点危险
    renmu123
        4
    renmu123  
       2021-08-23 16:22:08 +08:00 via Android
    a,如果走 b,你会把七牛的 secret 会暴露在前端,很容易被黑掉滥用
    johnlin
        5
    johnlin  
    OP
       2021-08-23 16:33:47 +08:00
    @napsterwu
    @cxe2v
    @renmu123 可能我没表述清楚,我是负责后端的,前端上传文件到七牛云非要走我服务器,我跟他解释 100MB 的文件你如果走后端服务器,那流程就变成 100MB 文件先传到我后端,我在传到七牛云,相当于要耗费 200MB 的流量。
    他跟我说前端直接传 100MB 文件到七牛云还是一样要走我们自己的服务器,说 js 读取不了本地文件(所以我不太理解这个)
    renmu123
        6
    renmu123  
       2021-08-23 16:53:38 +08:00 via Android   ❤️ 1
    @johnlin 前端无法主动读取文件,只能由用户进行选择进行读取。
    我说的是前端上传会涉及安全问题
    Pythondr
        7
    Pythondr  
       2021-08-23 19:23:06 +08:00
    @renmu123 得了吧,现在哪个对象存储服务不支持临时 token 鉴权?正确的做法是前端去后台请求临时上传 URL,然后直接通过这个临时 tokenURL 上传到对象存储
    jifengg
        8
    jifengg  
       2021-08-24 08:59:37 +08:00
    一般我不说人菜,但这个“前端”是真菜,错误 1:“前端直接传 100MB 文件到七牛云还是一样要走我们自己的服务器”,错误 2:“js 读取不了本地文件”,错误 3:“就算前面两个错误都是对的,那也没有因果关系”。楼主你就被带偏了。
    正确做法是 @Pythondr 所说的。我觉得七牛云文档里应该有类似”最佳实践“之类的文档告诉你怎么传文件的。
    再说一句,虽然是做后端的,前端知识也要掌握一些,不然类似错误 2 这种自己都不了解,没法回击呀。
    johnlin
        9
    johnlin  
    OP
       2021-08-24 10:06:14 +08:00
    前端我以前做过一点,而且按照我的理解对于这种大文件应该直接走第三方对象存储直接上传,但是前端跟我说这个我真蒙了,找了半天资料也没有验证这种说法。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   983 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 88ms · UTC 21:02 · PVG 05:02 · LAX 13:02 · JFK 16:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.