1

ユーザーが大きなファイル (~2MB) をアップロードして HTML ドキュメントに変換できるアプリの作成に興味があります。このアプリケーションにはデータベースがありません。代わりに、これらの html ファイルは、ドキュメント ソース ツリーの外にある特定の書き込み可能なディレクトリに保存されます。したがって、このディレクトリにファイルが追加されると、このディレクトリはどんどん大きくなります。ユーザーは、適切な URL にアクセスして、これらの html ファイルを表示できる必要があります。セキュリティ上の懸念はさておき、このディレクトリが拡大し続ける場合、何を心配する必要がありますか? ファイルの数が増えると、内部のファイルへのアクセスに時間がかかりますか? これが原因でクラッシュする可能性はありますか? これを防ぐには、100 ファイルごとに新しいディレクトリを作成する必要がありますか?

大事なことですが、ピラミッドとpythonを使ってこのアプリを作りたいです

4

2 に答える 2

2

とにかく管理しやすいように、ユーザー、アプリなどでディレクトリを分割することをお勧めします。たとえば、ユーザーがサービスの使用を停止した場合は、ディレクトリを削除するだけです。また、あなたはそれらをジッパーで締めることになると思います。うまく分離しておくと、後で気が変わることができます。

パーティション化されたディレクトリごとにsqlite dbを使用できるため、SQLiteのようなものを使用するとどのように機能するかを知りたいと思います。

HTML ファイルはアップロードしたファイルよりも大きいと思いますが、なぜ大きな HTML ファイルを保存するのでしょうか。

Mongodbなどは問題外ですか?アプリが複数のサーバーでスケーリングされるように、最初に何らかの手法を使用して適切なサーバーを選択しない限り、別のサーバー上の他のファイルにアクセスするという問題があります。次に、誰もそこにドキュメントを望んでいないため、サーバーがアイドル状態になっている可能性があります。

ファイルをディレクトリに保存するだけという制限があるのはなぜですか? それは POC ですか?

編集

http://blog.fogcreek.com/the-trello-tech-stack/のようなものを読むことに価値があると思います。あなたがしていることをすでに行っているサイトを見つけて、その技術について読むことをお勧めします。スタック。

誰かがすでにコメントしているように、Amazon S3 などを使用しない理由です。

想像しているユーザーの数を現実的に自問してください。実際に、次のFacebookになることを心配し、バックエンドの究極の技術スタックを実行しようとすることに多くのエネルギーを費やしたいですか?

何年も前、私は保険証書をファイルシステムに保存するシステムに取り組んでいました。

あえて言えば、それは吸うケースであり、あなたとあなたのアプリにとって何がうまくいくかを見てください.

編集

HAProxyは、負荷分散の問題をすべて処理するためのものだと思います。

私がユーザーとして想像しているように、私はhttp://docs.yourdomain.com/myname/document.docにアクセスしたいと思っています が、それが非常に明白な名前であるというセキュリティ上の懸念があると思います.

于 2013-02-15T19:07:54.370 に答える
1

これは、ファイルシステムに大きく依存します。git 関係者が遭遇した問題を調べたいと思うかもしれません (単一のファイルシステムベースのデータベースも使用しています)。

一般に、たとえばファイル名の最初の 2 文字または 3 文字 (またはそれらのハッシュ) を取得し、そのキーに基づいてファイルをサブディレクトリにグループ化するなどして、そのディレクトリを分割するのが賢明です。次のような構造になります。

uploaddir/
    00/
         files whose name sha1 starts with 00
    01/
         files whose name sha1 starts with 01

等々。これにより、おそらく大きなディレクトリが分割されるため、ファイルシステムの負荷が軽減されます。名前が同じ最初の文字にハッシュされるファイルを具体的にアップロードすることで、ユーザーがサービス拒否攻撃を実行できないようにしたい場合は、ハッシュを別の方法でシードするか、ソルトするか、またはそのようなものを使用することもできます。

具体的には、大きなディレクトリの影響はかなりファイル システム固有です。遅くなるものもあれば、非常にうまく処理できるものもあれば、ディレクトリごとにファイルの制限があるものもあります。

于 2013-02-15T19:07:49.237 に答える