おい!私は自分の問題の最善の解決策を知りたいです。私は署名ジェネレーターhttp://www.anitard.org/siggen/siggen_stripes/を持っており、そこで人々は署名のために自分の画像をアップロードすることができます。問題は、署名が完了したときに画像を削除するスクリプトがない場合、ストレージがかなり速くいっぱいになることです。
これに対する最善の解決策は何ですか?
おい!私は自分の問題の最善の解決策を知りたいです。私は署名ジェネレーターhttp://www.anitard.org/siggen/siggen_stripes/を持っており、そこで人々は署名のために自分の画像をアップロードすることができます。問題は、署名が完了したときに画像を削除するスクリプトがない場合、ストレージがかなり速くいっぱいになることです。
これに対する最善の解決策は何ですか?
個人的には、ファイルの作成日をチェックし、時間が1時間以上経過している場合はファイルを削除する、1時間ごと(またはボリュームによっては1日)に実行されるスクリプトがあります。現実的には、ユーザーはイメージを作成してから2分以内にハードドライブに保存する必要がありますが、それを当てにすることはできません。1時間は良い妥協のようです。
私の最初の気持ちは、アップロードされたファイルをまったく保存せず、画像が生成されたらすぐに削除することです。ただし、一部のブラウザは、ユーザーが画像を保存しようとしたときに画像を再度要求する場合があります。たとえば、FirefoxのDownloadThemAll拡張機能ではこれが当てはまります。したがって、@ JustLorenが提案するように、おそらくファイルを短時間保存する必要があります。
「phpdeletetempfiles」をグーグルですばやく検索すると、一定時間後にファイルを削除する方法を正確に説明するスクリプトが少なくとも1つ見つかります。これは、外部スクリプトまたはcronジョブとして実行する必要はありません。たとえば、アップロードスクリプトに追加するだけで済みます。
特定のスクリプトの1つの欠陥は、誰かがディスククォータを超えて、連続して多数のファイルを迅速にアップロードする可能性があることです。最後の50より古いファイル、またはそれ以上の数のファイルを削除して、リンクされたスクリプトを拡張することをお勧めします。これを行うには、一致したファイルの数を確認し、作成時間で並べ替えて、インデックスが50より大きいファイルを削除します。