0

ソーシャル タイプのサイトをホストしたい。node (または vertx) になります。私の質問は........ローカルエリアネットワークに別の画像サーバーがある場合..ユーザーがファイルをアップロードするときに、ファイルを画像-nginxサーバーに保存する必要があり、データベースはそれについて通知し、写真へのリンクを教えてください。

たとえば、次のようになります。

db.users.find('プロフィール写真': 1)

profilepicture: ローカルアドレス oftheneginxserver/imagefolder/imagename.jpg

私は物事を正しく考えていますか?画像を別のnginxサーバーで提供します...データベースに実際の画像ではなく画像へのリンクを含めます...したがって、クライアントがアプリサーバーに接続して特定の画像を要求すると、データベースにクエリを実行します。データベースはリンクをアプリサーバーに送信します...そして、アプリサーバーはユーザーのコンピューターに写真の場所を通知しますか?

それはうまくいくでしょうか?外部の誰かがどのようにしてアプリサーバーに接続し、同じローカルエリアネットワーク上の画像サーバーに接続できるかについて、私は少し混乱しています。イメージ サーバーは別の IP である必要がありますか?

4

1 に答える 1

1

同様のユースケースがあり、それを処理した方法は次のとおりです。

  • イメージは最初にアプリケーション サーバーにアップロードされ、そこで一時ファイルとして保存されます。
  • (オプション) 画像フォーマットの検証を実行し、必要に応じてサイズを変更します。
  • アプリケーション サーバーからイメージ サーバー (nginx、CDN、Amazon S3 など) にイメージを転送/デプロイします。
  • クライアントによって読み込まれるイメージの場所で DB レコードを更新します。
  • アプリケーション サーバーから一時ファイルを削除します。

そうすれば、HTTP クライアントは、すべてのビジネス ロジック/セキュリティ/アクセス制御などを保持するアプリケーション サーバーとのみ通信し、画像サーバーからのみ読み取ります。

このタイプのサーバーは通常、(アプリケーション サーバーとは異なり) アップロードされる内容をあまり制御できないため、実際にユーザーが画像サーバーに直接書き込みできるようにすることは、セキュリティ上のリスクになる可能性があります。

于 2012-11-07T06:00:41.317 に答える