使用REST API生成数据时如何传输数据?

时间:2019-04-26 09:42:00

标签: java rest spring-mvc

如何在使用REST API生成数据时将数据传输而不将其存储在任何临时内存中?

基本上,我有一些数据存储在数据库中,理想情况下,我需要写入文件,将其存储在服务器中并传输到客户端。但是服务器有空间限制,不允许我存储这么大的文件。在这种情况下我该怎么办?

1 个答案:

答案 0 :(得分:0)

不知道这种最佳方法是否适合您的情况,如果有人有比此更好的解决方案,请提供。约束是服务器上的大小有限。以下是我为您解决问题的方法

  1. 当前,您具有一个REST API(FilePart API),该API部署在存储空间有限的一台服务器上。 (我们称它为服务器1)
  2. 使此FilePart REST API部署在服务器1上,以基于分页数据创建文件部分(而不是整个文件),并返回生成的部分文件。
  3. 在另一台服务器(我们称为服务器2)上部署另一个应用程序(FileCombine API),该服务器将在服务器1上调用FilePart REST API,并将pageNo和pageSize作为参数发送。此调用将接受生成的filePart作为响应并存储在服务器2中。
  4. FileCombine API将多次调用FilePart API,直到下载了所有部件。
  5. 一旦所有部件都下载到服务器2上,FileCombine API将合并所有fileParts并将其发送回客户端。

所以您的架构将是这样。

  

客户端-调用-> FileCombineAPI(服务器2)-多个调用->   FilePartAPI(服务器1)

服务器1:空间有限。

服务器2:有足够的空间来处理操作。