为 Web 应用程序存储和检索大文件的架构

Architecture to store and retrieve large files for web app

我有几个用户处理大文件 (1GB)。这些文件只是数百万个点的大型原始向量。它表示长时间获取信号。

我有一个桌面软件可以可视化这些数据。基本上,我加载文件,应用过滤器(带通)和所有数据并绘制矢量。

我想做的是在 Web 应用程序上按部分可视化数据。数据块可能不会那么大,所以我不必在浏览器中加载整个文件(我什至不知道这是否可能)。文件存储在 S3 上。

那么我的问题是,如何有效地存储文件以便能够按部分快速检索它们。例如,一个文件中有 1 亿个样本,但我只想绘制样本 [125000, 150000]。例如,我如何在不必将整个文件从 S3 获取到 EC2 的情况下进行管理?我考虑过存储 10000 个数据样本块,这样我最多只能获取 3 个文件,但这是一个好方法吗?

Amazon S3 支持读取部分文件。如果您可以计算到您想要的数据点的偏移量及其长度,那么您可以只读取该部分。

此 link 展示了如何使用 HTTP GET 执行此操作:

Get Object

此页面展示了如何使用适用于各种语言的 AWS 开发工具包执行此操作:

Getting Objects