0

背景:
当社のソフトウェアは、通常の疑わしい形式 (HTML、PDF など) で顧客向けのレポートを生成し、各レポートには、そのレポートに固有のチャートやその他のグラフィックを含めることができます。PDF の場合、すべてが 1 つの場所 (PDF ファイル自体) に保持されます。レポートは基本的に複数のファイルの合計であるため、HTML はより複雑です。ファイルは、Tomcat を介して HTTP 経由で入手できます。

問題:
HTML レポートを 1 つのファイルにまとめて、きちんとした環境を作りたいと思っています。MTHML、データ URI、考慮すべきいくつかの形式があります。この優れた質問は、これらのフォーマットのクロス ブラウザー サポートがないことを考えると、ZIP が優れたソリューションであると仮定しています。「電子メールで送信できる HTML レポート」オプションとしてダウンロード用の zip を提供することもできるので、これは私にとって魅力的です。(過去に、ユーザーは、HTML レポートを電子メールで送信しようとしたときに、グラフィックが失われることに不満を持っていました)

解決策は簡単に思えます。リクエストが届くと、適切な zip を見つけて Web サーバーのどこかに解凍し、リクエストを新しい HTML ファイルに向けて、1 日かそこら後にすべてを整理します。

しかし、それについては何かが正しくないようです。それは良い解決策ではない、何か本質的に間違っている、あるいは今のところ見ることのできないより良い方法が存在するのではないかと直感しています。

これが良いか悪いかを提案し、代替ソリューションを提供できる人はいますか?

背景情報を編集してください。
レポートはサーバー上に保持する必要があります。私たちの顧客はサイトのユーザーであり、1 つのレポートの可視性はサイトのすべての人に及ぶ可能性があります。作成プロセスでは、ユーザーがレポートの条件を選択し、作成のためにサーバーに送信します。データベースからデータが抽出され、文書が作成されます。プレースホルダー レコードがデータベースに入り、ドキュメント自体がファイル サーバーのどこかに保存されます。私が整理したいのは「ファイルサーバー上のドキュメント」の部分です。圧縮すると、使用するディスク容量も少なくなります!. レポートが作成されると、それを表示できる人なら誰でも利用できます。

4

3 に答える 3

1

私は、zip ファイルがサーバーにとどまるのではなく、最終的にクライアントに保存されるという計画だと思っていたでしょう。

あなたのアーキテクチャについて知らなくても、次のようなアプローチを推測します。

  • ユーザーリクエストレポート
  • サーバーはレポートを HTML として表示します
  • ユーザーはおそらくいくつかのパラメーターを微調整し、要求を繰り返します
  • サーバーはレポートを HTML として表示します (ユーザーが満足するまで繰り返します)
  • 各 HTML レポートには、「zip としてダウンロード」リンクがあります。
  • ユーザーがリンクをクリックする
  • サーバーはレポートを再生成し、zip ファイルに保存してユーザーに提供します。
  • ユーザーはzipファイルをどこかに保存し、メールで送信します-サーバーはまったく関与しません

もちろん、これは、レポートを再実行して zip ファイルを生成できることに依存しています。HTMLを生成するたびにzipファイルを生成することもできますが、それを行う必要がなければ無駄であり、クリーンアップなどが必要です.

おそらく私はあなたを誤解しているかもしれません...これが適切に聞こえない場合は、質問を更新していただけますか?

編集:わかりました、あなたの質問の更新を見たので、各レポートのファイルを別のディレクトリに保存したくなります(たとえば、GUIDをディレクトリ名として使用します)。多くのファイル システムはファイル システム レベルでの圧縮をサポートしているため、「時期尚早の圧縮」ではおそらくディスク容量があまり節約されず、個々のファイルの抽出が難しくなります。次に、ユーザーが zip を要求した場合、提供する前に、その時点でおそらくメモリ内に zip ファイルを構築する必要があります。

于 2009-03-02T07:21:00.523 に答える
0

ファイル システム上に zip ファイルを物理的に作成する必要はありません。メモリ内に zip を作成し、それをブラウザにストリーミングして、一時的な zip が使用するメモリを GC に解放させることは問題ありません。もちろん、リクエストが行われるたびに継続的に zip を再作成するのは非効率的である可能性があるため、問題が発生します。ただし、ニーズなどに応じてこれらのことを判断してください。

于 2009-03-02T07:37:53.617 に答える