假设我有一个带有前端和后端的网站。该网站允许用户上传一些从数百 MB 到 GB 的数据。您如何有效地上传这些数据?
- 最简单的方法是将其从客户端/浏览器上传到前端服务器。然后通过 API 或其他方式将其发送到已连接数据存储的后端服务器,我们将在其中保存数据。但是,这会运行得很慢,因为上传的大小会是原来的两倍。
- 我想到的另一种方法是将数据直接从浏览器内运行的 javascript 发送到后端的 API。当我不希望后端/后端的 API 可供公众访问时,这可能是不合适的。这对架构也不利(如果你有 fe 和 be,你可能不想与客户沟通)。
那么,你有什么想法吗?还是有某种通用方法可以有效地做到这一点?它包括 CDN 吗?或者如果它只有几百 MB 的预文件,我应该将数据作为 base64 字符串存储在数据库中吗?谢谢。
编辑:我只是想为此使用 Amazon S3。这引发了类似的问题,上传到 S3 将在哪里发生。在浏览器中(并且对 S3 对象的引用将被发送到 FE 和 BE)或在 FE 中(并且引用将保存在 BE DB 中)还是在 BE 中?其中哪一个,为什么?