1

多くの PDF は、各 PDF ファイルの BLOB フィールドとして MySQL 内に保存されます。平均ファイル サイズはそれぞれ 500K です。

ユーザーがダウンロード リンクをクリックすると、Rails アプリは :binary データをファイル ダウンロードとしてストリーミングします。

最大 5 人のユーザーが同時に 5 つの PDF をダウンロードしていると仮定します。どのような種類の展開セットアップ パラメータに注意する必要がありますか? たとえば、薄い場合:

シンスタート --servers 3

上記の例で --servers 3 で十分かどうか (または 5 つ以上が必要かどうか)。

2 番目の質問は、有能なソリューションが「薄い」かどうかです。

ありがとう!

4

2 に答える 2

1

まず、データベースにファイルを保存するべきではないと思います。より適切な場所は、ファイル システム、または S3 のようなクラウド ストレージです。paperclipのような添付プラグインを使用する場合、これは非常に簡単にセットアップできます。

ただし、ファイルをデータベースに保存するとします。

現在の設定の問題は、ファイルを送信しているときに、クライアントがデータをダウンロードしている間、シン インスタンスがブロックしていることです。これは、3 つのシン インスタンスがあり、3 人のユーザーが PDF をダウンロードしている場合、サイトはどのリクエストにも応答しないことを意味します。

ありがたいことに、x-sendfileヘッダーに関連するこの問題の解決策があります。これが機能する方法は、シン インスタンスがファイルを Web サーバー (nginx など) に送信し、Web サーバーがファイルを直接提供することです。

nginx でこれを設定する方法については、stackoverflow に関するすばらしい投稿をご覧ください。

どの Web サーバーを使用していますか?

于 2010-03-08T18:14:41.273 に答える
0

ダウンロード専用のシンを 1 つまたは 2 つ定義できます。Web サーバーでは、Rails アプリケーションとダウンロード URL で異なるプロキシ ディストリビューションを作成できます。

于 2010-03-08T09:26:38.050 に答える