crest-cassia / oacis

http://crest-cassia.github.io/oacis/
46 stars 9 forks source link

ファイルのアーカイブを動的に作成する #725

Closed yohm closed 3 years ago

yohm commented 3 years ago

Runの結果を表示する画面に、Runの結果をまとめて圧縮したファイルを取得するボタンがある。

Screen Shot 2021-01-22 at 13 27 24

現状ではジョブの実行後に作った "tar.bz2" ファイルを展開後もディスク上に残しておき、"Download Archive"ボタンが押されたらこのファイルをダウンロードするように実装されている。

しかし、この仕様では展開後のファイルと圧縮ファイルを二重に保持しており、容量を圧迫するケースがある。 rubyzipを用いて、ボタンが押された時点でzipファイルを作って転送する仕様にしたい。

可能であれば、ファイルサイズの合計が閾値を超えた場合にエラーを出すようにする。閾値は1GBとして、ソースにハードコーディングしてよい(ユーザーが設定で変更できるようにする必要はない)

morimorihoge commented 3 years ago

ZIPファイル名: #{run_id}.zip

圧縮フォーマットが変わることで、現状何かで自動処理させている利用者への影響は問題ないか?(tar.bz2 -> zip)
-> この機能は人が触って使う機能なので問題ないとのこと

メモリ問題については、既にファイルシステムに展開されている前提を持って良ければCLIのzipコマンドを呼び出すようにした方が効率は良くなると思われます。
ただ、zipコマンドだと一度ZIPファイルがファイルシステム上に作られる関係で、ダウンロード済みZIPをどうやって削除するか問題が別途発生しそうです。 -> 一度生成されたZIPファイルは残っても問題ないのでは、という話もある(生成済みなら直接作成済みZIPファイルをダウンロードすれば良い)

どちらにしても、temporary領域に保存した貯まった生成済みZIPファイルを削除する方法は何かしら必要になると思われます。
着手するタイミング辺りで詳細相談させて下さい。

morimorihoge commented 3 years ago

本Issueは必要性の優先度などの調整もまだありそうなので、着手する前に一度村瀬様に確認を取る方向で進めたい。

もし本件に関連する何かで、利用者の方から「こういうことが困る」みたいな要件レベルの相談でも頂ければ、対処方法を検討するなどはできると思います。

morimorihoge commented 3 years ago

本Issueは取り急ぎ今回の改善範囲としては対応しないという方向で定例にて合意しましたので、issueとしてはcloseいたします。