1

いわゆる「マイクロアーキテクチャ」(基本的に、完全に独立して実行できるが同時に連携できる複数の小さな NodeJS プロジェクト) に基づいて NodeJS REST API プロジェクトを構築しようとしています。

現在、ユーザーはアプリから画像をアップロードでき、NodeJS バックエンドが画像を適切に処理して保存します。

今、私がやりたいことは次のとおりです。

ユーザーがアプリからアップロードする画像を選択 -> アプリが「メイン API」エンドポイントにリクエストを送信 -> メイン API エンドポイントがこのリクエストを「イメージ サービス」に転送 -> イメージ サービス (これは完全に別のサーバー) が正常に終了した場合、画像が保存されている URL をメイン API サーバー エンドポイントに返す必要があり、メイン API サーバー エンドポイントはアプリに情報を返します。

私の質問は、画像のアップロード要求をあるサーバーから別のサーバーに転送するにはどうすればよいですか? 理想的には、メイン API がイメージを一時的に保存してから、イメージ サービスにリクエストを送信することは望ましくありません。

私が望むのは、メイン API が受信したデータを Image Service サーバーに直接転送することです。ディスクやメモリに一時的に保存することなく、ある場所から別の場所にデータを「ストリーミング」したいと言うことができると思います。文字通り、あるサーバーから別のサーバーに「トンネル」したいだけです。

これは可能ですか、これは効率的な方法ですか? アプリがアクセスする 1 つの中心点が必要なだけで、この Image Service サーバーについて知られたくありません。アプリがメイン API に対してのみリクエストを行い、必要に応じて他の小さなサービスを呼び出すようにしたいと考えています。

NodeJS、Express、Multer (画像のアップロード用)、および Digital Ocean ホスティング (それによって違いが生じる場合) を使用しています。

4

1 に答える 1

1

基本的に行うことは、要求を別のマシンに直接渡したり戻したりするプロキシ サーバーをセットアップすることです。これに役立つライブラリがいくつかあります。特に、この記事http://blog.vanamco.com/proxy-requests-in-node-js/では、設定方法が説明されています。実際には HTTPS を回避しようとしているだけで、同じ概念がここにも当てはまります。

つまり、ファイル アップロード POST を取得し、すぐに別のサーバーに同じ要求を行い、応答が返されたらすぐにフロント エンドに返します。エントリ ポイントをハブとして設定し、要求を他のサーバーにプロキシしたり、必要に応じて同じサーバーで処理したりすることもできます。

于 2015-12-20T15:00:16.067 に答える