3

假设我有一个带有前端和后端的网站。该网站允许用户上传一些从数百 MB 到 GB 的数据。您如何有效地上传这些数据?

  • 最简单的方法是将其从客户端/浏览器上传到前端服务器。然后通过 API 或其他方式将其发送到已连接数据存储的后端服务器,我们将在其中保存数据。但是,这会运行得很慢,因为上传的大小会是原来的两倍。
  • 我想到的另一种方法是将数据直接从浏览器内运行的 javascript 发送到后端的 API。当我不希望后端/后端的 API 可供公众访问时,这可能是不合适的。这对架构也不利(如果你有 fe 和 be,你可能不想与客户沟通)。

那么,你有什么想法吗?还是有某种通用方法可以有效地做到这一点?它包括 CDN 吗?或者如果它只有几百 MB 的预文件,我应该将数据作为 base64 字符串存储在数据库中吗?谢谢。

编辑:我只是想为此使用 Amazon S3。这引发了类似的问题,上传到 S3 将在哪里发生。在浏览器中(并且对 S3 对象的引用将被发送到 FE 和 BE)或在 FE 中(并且引用将保存在 BE DB 中)还是在 BE 中?其中哪一个,为什么?

4

2 回答 2

-1

一种选择是将 S3 存储桶挂载为服务器上的本地目录(例如使用RioFS),并让您的 Web 应用程序将上传的文件保存到该文件夹​​。文件将并行发送到您的 S3 存储桶。

于 2013-11-14T15:20:50.437 回答
-1

根据您的问题,我了解到您允许用户上传从 MB 到 GB 的文件。在这种情况下,您需要将文件保存在特定文件夹中,并将对该文件夹的引用保存在后端数据库中。这将是存储大数据的有效方式。如果您将数据保存在后端,那么它将不必要地使您的后端过载。

于 2013-11-14T05:30:07.427 回答