前端上传文件到问题

2021-08-23 11:52:52 +08:00
 johnlin

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

966 次点击
所在节点    问与答
9 条回复
napsterwu
2021-08-23 12:57:05 +08:00
正确做法是在前端把文件分成 20*5 上传到七牛云
napsterwu
2021-08-23 12:57:45 +08:00
为啥无法读取?分片上传很成熟的,你去搜一下
cxe2v
2021-08-23 14:20:52 +08:00
js 无法读取本地文件?那网盘怎么传文件的?

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

那我只能说你的思想有点危险
renmu123
2021-08-23 16:22:08 +08:00
a,如果走 b,你会把七牛的 secret 会暴露在前端,很容易被黑掉滥用
johnlin
2021-08-23 16:33:47 +08:00
@napsterwu
@cxe2v
@renmu123 可能我没表述清楚,我是负责后端的,前端上传文件到七牛云非要走我服务器,我跟他解释 100MB 的文件你如果走后端服务器,那流程就变成 100MB 文件先传到我后端,我在传到七牛云,相当于要耗费 200MB 的流量。
他跟我说前端直接传 100MB 文件到七牛云还是一样要走我们自己的服务器,说 js 读取不了本地文件(所以我不太理解这个)
renmu123
2021-08-23 16:53:38 +08:00
@johnlin 前端无法主动读取文件,只能由用户进行选择进行读取。
我说的是前端上传会涉及安全问题
Pythondr
2021-08-23 19:23:06 +08:00
@renmu123 得了吧,现在哪个对象存储服务不支持临时 token 鉴权?正确的做法是前端去后台请求临时上传 URL,然后直接通过这个临时 tokenURL 上传到对象存储
jifengg
2021-08-24 08:59:37 +08:00
一般我不说人菜,但这个“前端”是真菜,错误 1:“前端直接传 100MB 文件到七牛云还是一样要走我们自己的服务器”,错误 2:“js 读取不了本地文件”,错误 3:“就算前面两个错误都是对的,那也没有因果关系”。楼主你就被带偏了。
正确做法是 @Pythondr 所说的。我觉得七牛云文档里应该有类似”最佳实践“之类的文档告诉你怎么传文件的。
再说一句,虽然是做后端的,前端知识也要掌握一些,不然类似错误 2 这种自己都不了解,没法回击呀。
johnlin
2021-08-24 10:06:14 +08:00
前端我以前做过一点,而且按照我的理解对于这种大文件应该直接走第三方对象存储直接上传,但是前端跟我说这个我真蒙了,找了半天资料也没有验证这种说法。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/797437

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX