フォーラム掲示板について

以下の目的、注意点などご確認いただき、ご使用ください。

目的
Connect-CMSのユーザやConnect-CMSに興味のある方同士で自由に意見交換できる場を提供する目的で、コミュニティ掲示板として提供しています。
投稿方法
このサイトにユーザー登録することで、投稿することができます。
投稿内容
投稿内容は公開されます。
Connect-CMSに無関係な内容が記載されたと判断した場合、削除することがあります。
バグ情報
バグ(不具合)はGithub のIssues(https://github.com/opensource-workshop/connect-cms/issues)に記載していただくと、開発者に伝わりやすくなります。
また、セキュリティなど重大な事象の場合は、お問い合わせページよりお知らせください。優先的に調査いたします。
また、貢献ガイド(https://connect-cms.jp/abount/contributions)も参照をお願いします。
ユーザ登録
当サイトへのユーザ登録は以下のお問い合わせフォームよりお願いいたします。
https://connect-cms.jp/contact

フォーラムでのサポート範囲

当フォーラムでは、Connect-CMSのトラブルなどの相談も記載いただけますが、作業を肩代わりするものではありません。
作業の依頼は、株式会社オープンソース・ワークショップの調査メニューなどをご検討ください。
https://opensource-workshop.jp/service/rescue

フォーラム掲示板

Re6: アップしたものの使用していないデータについて

2022年3月4日 14時48分 [M.OHA]

永原 様

調査、ありがとうございます。

もう少し探ってみます。

ありがとうございました。

スレッドの記事一覧

いつもお世話になっています。

アップロードファイル一覧で、ページがついていないファイルは使用されておらず、直リンクでもダウンロードはできないのですが、ファイルそのものを削除したりはできないでしょうか?

ディスク容量を圧迫したりして、増えるばかりになるのが心配です。

M.OHA さん

こんにちは。
永原と申します。

ファイルの削除機能は作成する予定です。
なかなか、そこに着手できていないんですけど(>_<)

機能追加などの情報については、随時確認をお願いいたします。

以上、失礼いたします。

早速のお返事ありがとうございます。
実は、使いやすいため更新頻度が上がっているのか、
思いのほかディスク容量を消費しているといったところです。

/cms/storage/app/uploads

配下の該当ファイルを直接削除しても問題は出ないですか?
一時的に退避、再度アップロード、とかでもよいのですが。
直接触っちゃうと、データベース上不整合がおきそうですが…。

NC2にあった、クリーンアップ機能みたいに実装されるといいですね。

永原です。

アップロードファイルを削除しても、システム全体に影響が出るということはありません。

ファイルのリンクをクリックしたらエラーになるかも知れませんが。。

以上、参考になりましたら。

たびたびの素早いレスありがとうございます。

> アップロードファイルを削除しても、システム全体に影響が出るということはありません。

なるほど、です。
安心しました。

> ファイルのリンクをクリックしたらエラーになるかも知れませんが。。

それは実体がないので、当然ですよね。

たまたま見つけたのですが、当方の環境では、
/cms/strage/app/tmp/cabinet
フォルダがすごく大きく、このフォルダはZIPファイルでいっぱいでしたが
使用しているキャビネットのファイルでしょうか?

永原です。
状況をありがとうございます。

> /cms/strage/app/tmp/cabinet
> フォルダがすごく大きく、このフォルダはZIPファイルでいっぱいでしたが
> 使用しているキャビネットのファイルでしょうか?

tmp と付いているので、一時的なフォルダなんだろうなと思います。
正確にはプログラムを調べてみないと、確定ではありませんが。

私のローカル環境では、フォルダはありましたが、中身は空だったので、バグなのか、環境要因なのかで、プログラムが異常終了などして、ゴミが残ったのかな?などと、予想します。(今の段階では予想ですが)

今後、バグだったとして、修正した際には、この公式サイトやGithub などでのリリース情報にも含まれるかなと思いますので、情報を確認して行っていただければと思います。

以上、失礼いたします。

Re6: アップしたものの使用していないデータについて
2022-03-04 [M.OHA]

永原 様

調査、ありがとうございます。

もう少し探ってみます。

ありがとうございました。

報告です。

/cms/strage/app/tmp/cabinet 内のファイルですが、
削除したのちもキャビネットのファイルは閲覧できていますので、
削除しても問題なさそうです。

挙動を正確に確認できていないのですが、
Upload時、または、複数ファイルダウンロード時に生成されるような気がします。
ファイル削除(クリーンアップ)機能の対象にした方が良いと思います。

こんにちは。OSWS石垣です。

/cms/strage/app/tmp/cabinetですが、
複数ファイルダウンロード時、一時的にZIPファイルを作成するためのフォルダです。

ダウンロード後にZIPファイルをサーバーから削除する処理は、すでに備わっています。
アプリケーションの実行ユーザーに当該フォルダの削除権限があるか確認してみてください。

OSWS石垣 様

ありがとうございます。

アプリケーションの実行ユーザーが誰というのは、
どのようにすれば分かりますか?
該当フォルダ内に出来上がっているファイルは、
所有者apacheなんですが、ユーザーapacheの削除権限になりますか?

 
まだ状況を再現できていないのですが、以下まで試しました。
 
--- 

[環境]

  • 新規に AlmaLinux 8.5 をOSのインストールから行った
  • Apache 2.4.53,  PHP8.0,  MariaDB 10.7.3 を追加した
  • PHPのモジュールは公式Wiki[Install (インストール)(Linux等へのインストール:root権限ある場合)]よりも少し多い
  • Apache, PHP, MariaDBの準備後、Connect-CMS(2022-03-17版)のインストールについては公式Wikiに従う
    ただし、「該当のConnect-CMSディレクトリにあるファイルの所有者をapacheにする」については、
     chown -R apache:apache /var/www/connect-cms/test01
    として、Connect-CMS関連ファイル全体について所有者をapacheにした
  • インストール後、キャビネットプラグインを設置した。
    いくつかの画像ファイルのアップロードし、
    複数まとめてzipのダウンロードを行えることを確認した
     

[検証と結果]

  • Wikiのインストール手順「Directory permissions(ディレクトリパーミッション)」でstorageディレクトリの設定を変えたり戻したりしてみた
    □ 所有者: apache.apache → root.root : エラー
    □ 権 限:chmod -R u+wr storage → 後に u-w とか u-r : 500エラー  
     

[状況]

操作結果によるエラーは妥当に思います。
キャビネットプラグインが表示され、動いているということは、
所有者・権限について(概ね)合っているのだろうと思います。

しかし、残念ながら、 /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 は、当方の運用状況では、
ディスクを圧迫していたので、大変ありがたいです。

要求ばかりで申し訳ないのですが、
ページで使用していないファイルの
クリーンアップ機能などがあれば、完璧です。

ありがとうございます。