node.js - 将图像上传请求转发到另一台服务器

标签 node.js api file-upload image-uploading micro-architecture

我正在尝试构建一个基于所谓的“微架构”的 NodeJS REST API 项目(基本上是多个较小的 NodeJS 项目,可以完全独立运行,但同时可以协同工作)。

目前,用户可以从应用程序上传图像,然后我的 NodeJS 后端会适本地处理并保存它们。

现在,我想做的是:

用户选择要从应用程序上传的图像 -> 应用程序向“Main API”端点发出请求 -> 主 API 端点然后将此请求转发到“图像服务” -> 一旦图像服务(其中是一个完全不同的服务器)已成功完成,它应该将存储图像的 URL 返回到 Main API 服务器端点,然后该端点会将信息返回给应用程序。

我的问题是,如何将图像上传请求从一台服务器转发到另一台服务器?理想情况下,我不希望 Main API 临时存储图像,然后向图像服务发出请求。

我想要尝试将 Main API 接收到的数据直接转发到图像服务服务器。我想您可能会说我想将数据从一个地方“流”到另一个地方,而不必临时存储在磁盘或内存上。我实际上只是希望它从一台服务器“隧道”到另一台服务器。

这可能吗?这是一种有效的方法吗?我只想要 1 个中心点供应用程序访问,我不希望它知道此图像服务服务器。我希望应用程序只向 Main API 发出请求,然后 Main API 将根据需要调用我的其他小服务。

我正在使用 NodeJS、Express、Multer(用于图像上传)和 Digital Ocean 托管(如果这有什么区别的话)。

最佳答案

您基本上要做的是设置一个代理服务器,它将请求直接传递到另一台计算机并返回。有一些库可以帮助解决这个问题,特别是这篇文章 http://blog.vanamco.com/proxy-requests-in-node-js/将解释如何进行设置,即使他们实际上只是试图绕过 HTTPS,同样的概念也适用于此。

简而言之,您获取文件上传 POST,然后立即向另一台服务器发出相同的请求,当返回响应时,立即将其返回到前端。您的入口点可以设置为中心,并且您可以将请求代理到其他服务器,甚至在必要时在同一服务器上处理它们。

关于node.js - 将图像上传请求转发到另一台服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34376623/

相关文章:

javascript - 无法使用 Socket.IO 发送到 Node 服务器

node.js - 使用 express.js 和 PostgreSQL 的 rest api

java - Apache httpclient HTTPGET 解码

python - 如果API没有返回数据,如何跳到Python中的另一个循环?

javascript - 我可以使用 gulp 将一个文件中的内容插入到另一个文件中吗?

node.js - Sequelize 关联的某些设置不起作用

facebook - 用于创建 Web API(如 Twitter API 或 Facebook API)的资源?

android - 如何在android中创建一个持续运行的后台文件上传?

file-upload - Rich :fileUpload component in (RC 4. 3.4) 在 Apache Tomcat7 和 JSF 2.2 上工作吗? : "Request prolog cannot be read"

file-upload - 上传文件的不同方法?