Closed yohm closed 3 years ago
ZIPファイル名: #{run_id}.zip
圧縮フォーマットが変わることで、現状何かで自動処理させている利用者への影響は問題ないか?(tar.bz2 -> zip)
-> この機能は人が触って使う機能なので問題ないとのこと
メモリ問題については、既にファイルシステムに展開されている前提を持って良ければCLIのzipコマンドを呼び出すようにした方が効率は良くなると思われます。
ただ、zipコマンドだと一度ZIPファイルがファイルシステム上に作られる関係で、ダウンロード済みZIPをどうやって削除するか問題が別途発生しそうです。
-> 一度生成されたZIPファイルは残っても問題ないのでは、という話もある(生成済みなら直接作成済みZIPファイルをダウンロードすれば良い)
どちらにしても、temporary領域に保存した貯まった生成済みZIPファイルを削除する方法は何かしら必要になると思われます。
着手するタイミング辺りで詳細相談させて下さい。
本Issueは必要性の優先度などの調整もまだありそうなので、着手する前に一度村瀬様に確認を取る方向で進めたい。
もし本件に関連する何かで、利用者の方から「こういうことが困る」みたいな要件レベルの相談でも頂ければ、対処方法を検討するなどはできると思います。
本Issueは取り急ぎ今回の改善範囲としては対応しないという方向で定例にて合意しましたので、issueとしてはcloseいたします。
Runの結果を表示する画面に、Runの結果をまとめて圧縮したファイルを取得するボタンがある。
現状ではジョブの実行後に作った "tar.bz2" ファイルを展開後もディスク上に残しておき、"Download Archive"ボタンが押されたらこのファイルをダウンロードするように実装されている。
しかし、この仕様では展開後のファイルと圧縮ファイルを二重に保持しており、容量を圧迫するケースがある。 rubyzipを用いて、ボタンが押された時点でzipファイルを作って転送する仕様にしたい。
app/views/shared/_resutls.html.haml
の中でリンクが作られている。JobIncluder.include_archive
からJobScriptUtil.expand_result_file
をよんでいる箇所があり、その中でアーカイブのファイルを展開している。展開直後に削除すれば良い。可能であれば、ファイルサイズの合計が閾値を超えた場合にエラーを出すようにする。閾値は1GBとして、ソースにハードコーディングしてよい(ユーザーが設定で変更できるようにする必要はない)