90578


別件でphpで似たような構造のシステムを開発しています。

オンライン動画ダウンロードサイトで  
ユーザーがダウンロードリクエストし、サーバー上に一時的に生成される動画ファイルのセッション終了後の削除方法について教えてください。

該当のセッションが終了した時に自動削除するのがサーバー容量負荷回避につながるかと思ったのですが、  
ユーザーがセッションを閉じなかった場合の圧迫対策も兼ねて、生成されたファイルに自動削除の時限処理も同時に付与するイメージなのか？と考えたのですが、実用的な動作としてはどのような処理方法が想定されますでしょうか？

また、ブラウザバックでダウンロードボタンのページまで戻った場合に再ダウンロードが可能なサイトが見受けられることを考えると、しばらくキャッシュとして保管しておいて、制限時間が超えた場合にのみ削除に留めるべきなのでしょうか。

レンタルサーバーなどの理由でファイル過多になるのを防ぐため、指定ディレクトリ内容量が一定サイズを超えた場合にも最も古いファイルを制限時間前でも自動削除する方が良さそうですが、ユーザビリティを考える場合、どのように構築するのが望ましいと思いますか？


CC BY-SA 4.0
2022-08-16T01:15:28.987
90576
2022-08-16T04:11:25.670
51823
question
php
オンライン動画ダウンロードサイト上で生成された動画ファイルは、サーバー上でどのように自動削除される？


例えばサーバが Linux であるなら、おおよそ以下のような仕組みで実現できると思います。

  1. `find` コマンドで一定以上の日数を経過したファイルを削除

**例:** 最終修正時刻が 7 日以上前のファイルを削除

[code]     $ find /path/to/video/ -name "*.mp4" -mtime +7 | xargs rm -rf

    
[/code]

  2. 上記の仕組みを crontab で定期的に実行

あくまで "ファイルの実体" のタイムスタンプのみを考慮したものなので、実際の運用では web アプリ側の DB
等との整合も考慮する必要は出てくると思います。


CC BY-SA 4.0
2022-08-16T04:11:25.670
90578
2022-08-16T04:11:25.670
3060
90576
answer