将图片上传请求转发到其他服务器

时间:2015-12-19 23:49:03

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

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

目前,用户可以从应用上传图片,然后我的NodeJS后端会处理并妥善保存。

现在,我想做的是以下内容:

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

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

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

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

我正在使用NodeJS,Express,Multer(用于图像上传)和数字海洋托管(如果这应该有任何区别)。

1 个答案:

答案 0 :(得分:1)

您基本上要做的是设置一个代理服务器,将请求直接传递到另一台机器并返回。有一些库可以帮助解决这个问题,本文特别是enter image description here将解释如何进行设置,即使它们只是试图绕过HTTPS,这里适用相同的概念。 / p>

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