请教下后端大佬,关于文件上传逻辑的实现

242 天前
 Kinnikuman

小弟只写过前端,没写过后端,现在写个小项目需要后端的一些实现。有个逻辑不太清楚应该怎么实现。

文件上传使用 minio 做文件存储。当前端想上传文件时候,前端请求一个 api 给后端,后端生成一个预签名的 minio url ,前端拿到这个上传链接进行上传。

上传完成后,前端是否需要再调用一次接口,将上传完成这个动作通知后端。

虽然 minio 有 webhook 功能,支持上传完成后调用后端接口通知后端程序。但这样和前端是并行的。上传完成后需要将一些信息写入到数据库,比如数据库有一个 state 状态标志着是否上传完成,以及上传完成后的 minio 直链。

如果使用 webhook 这种,前端上传完成后会立即刷新页面,但此时后台还没有完成数据库更新操作,数据刷新会不及时。

但是如果使用再加一个 api 让前端调用,感觉有点复杂,一个上传逻辑需要 3 个接口请求。

所以最佳实践是什么样的?

5572 次点击
所在节点    程序员
43 条回复
yh7gdiaYW
241 天前
@dilu 你们这个私有桶看着跟楼上的临时桶用途是类似的,小文件这么做没问题,对传数 GB 甚至更大文件需求的话就不合适了,对象存储复制大文件的速度一般
yh7gdiaYW
241 天前
@dilu 第二种不用私有桶的方式,没有解决反复编辑上传产生垃圾文件的问题
sazima
241 天前
用 formdata 一个接口就行。

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

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

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

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

© 2021 V2EX