Re7: アップしたものの使用していないデータについて
2022年3月15日 15時19分 [OSWS石垣]こんにちは。OSWS石垣です。
/cms/strage/app/tmp/cabinetですが、
複数ファイルダウンロード時、一時的にZIPファイルを作成するためのフォルダです。
ダウンロード後にZIPファイルをサーバーから削除する処理は、すでに備わっています。
アプリケーションの実行ユーザーに当該フォルダの削除権限があるか確認してみてください。
以下の目的、注意点などご確認いただき、ご使用ください。
当フォーラムでは、Connect-CMSのトラブルなどの相談も記載いただけますが、作業を肩代わりするものではありません。
作業の依頼は、株式会社オープンソース・ワークショップの調査メニューなどをご検討ください。
https://opensource-workshop.jp/service/rescue
こんにちは。OSWS石垣です。
/cms/strage/app/tmp/cabinetですが、
複数ファイルダウンロード時、一時的にZIPファイルを作成するためのフォルダです。
ダウンロード後にZIPファイルをサーバーから削除する処理は、すでに備わっています。
アプリケーションの実行ユーザーに当該フォルダの削除権限があるか確認してみてください。
いつもお世話になっています。
アップロードファイル一覧で、ページがついていないファイルは使用されておらず、直リンクでもダウンロードはできないのですが、ファイルそのものを削除したりはできないでしょうか?
ディスク容量を圧迫したりして、増えるばかりになるのが心配です。
M.OHA さん
こんにちは。
永原と申します。
ファイルの削除機能は作成する予定です。
なかなか、そこに着手できていないんですけど(>_<)
機能追加などの情報については、随時確認をお願いいたします。
以上、失礼いたします。
早速のお返事ありがとうございます。
実は、使いやすいため更新頻度が上がっているのか、
思いのほかディスク容量を消費しているといったところです。
/cms/storage/app/uploads
配下の該当ファイルを直接削除しても問題は出ないですか?
一時的に退避、再度アップロード、とかでもよいのですが。
直接触っちゃうと、データベース上不整合がおきそうですが…。
NC2にあった、クリーンアップ機能みたいに実装されるといいですね。
永原です。
アップロードファイルを削除しても、システム全体に影響が出るということはありません。
ファイルのリンクをクリックしたらエラーになるかも知れませんが。。
以上、参考になりましたら。
たびたびの素早いレスありがとうございます。
> アップロードファイルを削除しても、システム全体に影響が出るということはありません。
なるほど、です。
安心しました。
> ファイルのリンクをクリックしたらエラーになるかも知れませんが。。
それは実体がないので、当然ですよね。
たまたま見つけたのですが、当方の環境では、
/cms/strage/app/tmp/cabinet
フォルダがすごく大きく、このフォルダはZIPファイルでいっぱいでしたが
使用しているキャビネットのファイルでしょうか?
永原です。
状況をありがとうございます。
> /cms/strage/app/tmp/cabinet
> フォルダがすごく大きく、このフォルダはZIPファイルでいっぱいでしたが
> 使用しているキャビネットのファイルでしょうか?
tmp と付いているので、一時的なフォルダなんだろうなと思います。
正確にはプログラムを調べてみないと、確定ではありませんが。
私のローカル環境では、フォルダはありましたが、中身は空だったので、バグなのか、環境要因なのかで、プログラムが異常終了などして、ゴミが残ったのかな?などと、予想します。(今の段階では予想ですが)
今後、バグだったとして、修正した際には、この公式サイトやGithub などでのリリース情報にも含まれるかなと思いますので、情報を確認して行っていただければと思います。
以上、失礼いたします。
永原 様
調査、ありがとうございます。
もう少し探ってみます。
ありがとうございました。
報告です。
/cms/strage/app/tmp/cabinet 内のファイルですが、
削除したのちもキャビネットのファイルは閲覧できていますので、
削除しても問題なさそうです。
挙動を正確に確認できていないのですが、
Upload時、または、複数ファイルダウンロード時に生成されるような気がします。
ファイル削除(クリーンアップ)機能の対象にした方が良いと思います。
こんにちは。OSWS石垣です。
/cms/strage/app/tmp/cabinetですが、
複数ファイルダウンロード時、一時的にZIPファイルを作成するためのフォルダです。
ダウンロード後にZIPファイルをサーバーから削除する処理は、すでに備わっています。
アプリケーションの実行ユーザーに当該フォルダの削除権限があるか確認してみてください。
OSWS石垣 様
ありがとうございます。
アプリケーションの実行ユーザーが誰というのは、
どのようにすれば分かりますか?
該当フォルダ内に出来上がっているファイルは、
所有者apacheなんですが、ユーザーapacheの削除権限になりますか?
まだ状況を再現できていないのですが、以下まで試しました。
---
[環境]
[検証と結果]
[状況]
操作結果によるエラーは妥当に思います。
キャビネットプラグインが表示され、動いているということは、
所有者・権限について(概ね)合っているのだろうと思います。
しかし、残念ながら、 /cms/strage/app/tmp/cabinet のディレクトリに
zipファイルの蓄積は起こりませんでした。
そもそも、通常の稼働状態でWinSCPとPuTTYで一手順ごとにファイル状態を見てもzipファイルの生成を視認できませんでした(つまり、私のところではcabinetディレクトリの中は常に空に見えます)。その状態でキャビネットにある「ファイルをまとめてダウンロード」すると、(ディレクトリ内で視認できませんが)zipファイルは問題なくダウンロードできます。
---
というわけで、まだzipファイルの蓄積を再現できず、
対策が分かりません。すみません。
ここまで報告します。
公星 様
大変丁寧な検証ありがとうございます。
今回再現できなかったようですが、
ファイルクリーンアップみたいな機能実装時に、
該当フォルダもチェックできればそれでよいのかなと思います。
ありがとうございました。
勉強になりました。
公星さん、検証ありがとうございます。
下記は推測で申し訳ないのですが、
/cms/strage/app/tmp/cabinet
にファイルが残るとしたら、考えられるのは、おそらくzipアップロードによる解凍・圧縮時に
phpのメモリエラーやphp実行時間オーバーが発生すると、phpが強制終了して、本来実行するはずのtmpファイル削除が走らず、ファイルが残るかもなぁ。
ここからは私もやった事ないのですが、どうもこれはプログラムの問題で、今後解決できるかも、です。
技術参考:register_shutdown_function で捕捉できるエラーについて - Qiita
https://qiita.com/notona/items/0fffd9456c88bcb2d495
技術参考:?【Laravel6】register_shutdown_function()使うときは配列にして$thisも渡す - Qiita
https://qiita.com/eltociear/items/278499fbed25b9cc744b
すみません、以下訂正です。
社内から、キャビネットにzipをアップロード時して展開機能ない、まとめてダウンロードする時にzip使ってるんや!とツッコミがありました。
そのため、まとめてダウンロード時でファイル容量が大きくなった時にtmp残る現象がおきるかもです。
今後時間できたら検証したいなぁ。
M.OHA 様、牟田口 様、
お返事ありがとうございます。
将来に期待ということで承知しました。
技術情報のご提示、とても勉強になります。
公星 様、牟田口 様
いろいろと検証等ありがとうございます。
アップロードファイルので使用されていないファイル等と、
いっしょに削除する機能があればありがたいと思います。
ユーザー側からすると、
アクセスできなくてもサーバー上にあるんでしょ、
ってことになるようです。
将来に期待しております。
M.OHA様
その後調査したところ、/cms/strage/app/tmp/cabinet のファイルが残る件が再現でき、ファイルが残らないように修正対応しましたので、ご連絡します。
詳細Issue
https://github.com/opensource-workshop/connect-cms/issues/1374
以上です。
おお~!ありがとうございます。
/cms/strage/app/tmp/cabinet は、当方の運用状況では、
ディスクを圧迫していたので、大変ありがたいです。
要求ばかりで申し訳ないのですが、
ページで使用していないファイルの
クリーンアップ機能などがあれば、完璧です。
ありがとうございます。