2

环境

我的应用程序(战争)有一个 JavaScript 前端和一个 Java REST 服务。

要上传的文件将在前端生成,但不是直接由用户交互生成——这不是用户自己上传文件的用例。因此,有必要从 JavaScript 代码启动上传。

当我上传二进制数据时,我需要能够发送关于二进制数据的元数据(由应用程序的其他部分生成)——这就是为什么我需要某种协议而不是仅仅上传文件的原因。

问题

我无法确定上传文件的最佳做法是什么,主要是关于所使用的协议。

我遇到了以下协议:

然而,像往常一样,互联网上有很多不同的信息,这些信息并没有给我一个连贯的画面:

  • 关于可靠性,互联网似乎说你最好使用multipart/mixed类型来传输数据,而不是纯application/octet-stream类型。
  • json 本身并不支持二进制数据,显然,Base64 具有很高的处理开销。
  • 它是一个 JavaScript 前端,因此首选 json。
  • 当然,我可以使用 protobuf.js,但我更愿意使用前沿技术而不是前沿技术。

我的优先事项是:

  • 1 到 10 兆字节的文件的可靠数据传输。
  • 高性能和高效的数据传输。
  • 可读代码/架构

简而言之,鉴于我在后端使用 Java REST 服务,上述 3 种格式中的哪一种最适合这些要求?

(如果我使用 Java REST 服务(而不是 servlet)来上传文件这一事实将是最大的减速,这也是一个很好的答案!)

编辑:添加评论要求的信息 - 谢谢!

4

0 回答 0