Audit Files

ファイルディレクトリ、データベース、コンテンツ内のファイルとファイル参照を比較・修正できます。

auditfiles
4,265 sites
61
drupal.org

インストール

Drupal 11, 10 v4.2.4
composer require 'drupal/auditfiles:^4.2'

概要

Audit Filesモジュールは、サーバー上のファイルとDrupalサイトで使用されているファイルの同期を維持するのに役立ちます。サーバーのファイルシステム上のファイル、file_managedデータベーステーブルのエントリ、file_usageテーブル、コンテンツエンティティ内のファイルフィールド参照を比較する7つの包括的なレポートを提供します。

このモジュールは、既存の問題を修正しようとする際に追加の問題を発生させないよう、ファイルとその参照を扱う際に意図的にDrupal File APIの使用を避けています。Drupal Batch APIを使用して操作を効率的に実行し、サーバー負荷を軽減し、大規模なファイルシステムでのタイムアウトを防ぎます。

発見された各不整合に対して、管理者はデータベースへのファイル追加、サーバーからの孤立ファイルの削除、古いデータベースエントリの削除、重複ファイル参照の単一ファイルエンティティへの統合などの修正アクションを実行できます。

Features

  • ファイルシステム、file_managedテーブル、file_usageテーブル、コンテンツ参照を横断して比較する7つの監査レポート
  • データベースに未登録レポート:file_managedデータベーステーブルで追跡されていないサーバー上のファイルを一覧表示し、データベースへの追加またはサーバーからの削除オプションを提供
  • サーバーに存在しないレポート:データベースに登録されているがファイルシステムに存在しないファイルを一覧表示し、データベースエントリの削除が可能
  • 管理対象で未使用レポート:file_usageテーブルに対応するエントリがないfile_managed内のファイルを表示
  • 使用中で管理対象外レポート:対応するファイルエンティティがfile_managedに存在しないfile_usageエントリを一覧表示
  • 使用中で未参照レポート:コンテンツフィールドから参照されなくなったfile_usage内のファイルを表示
  • 参照中で未使用レポート:対応するfile_usageエントリがないコンテンツフィールド内のファイル参照を表示し、使用レコードの追加または参照の削除オプションを提供
  • ファイル参照統合レポート:file_managed内の重複ファイル名を識別し、複数のファイルエンティティを単一の正規ファイルに統合可能
  • 大規模データセットでのタイムアウトを防ぐためのすべての操作のバッチ処理
  • ファイル、拡張子、パスの設定可能な除外フィルター
  • パフォーマンス最適化のための設定可能なレコード制限とページネーション
  • イベントサブスクライバーを通じてファイル操作のカスタマイズを可能にするイベント駆動アーキテクチャ

Use Cases

コンテンツ移行後のクリーンアップ

別のCMSまたはDrupalバージョンからコンテンツを移行した後、「データベースに未登録」レポートを使用して、サーバーにコピーされたがDrupalで追跡されていないファイルを特定し登録します。データベースに追加してコンテンツで使用できるようにします。

孤立ファイルを削除してディスク容量を解放

時間の経過とともに、削除されたコンテンツや失敗したアップロードからファイルがサーバーに蓄積される可能性があります。「データベースに未登録」レポートを使用してこれらの孤立ファイルを見つけ、削除してディスク容量を回収します。

壊れた画像とダウンロードの修正

コンテンツで壊れた画像が表示されたりダウンロードが失敗したりする場合、「サーバーに存在しない」レポートを使用して、データベースに登録されているがファイルシステムに存在しないファイルを特定します。ファイルを復元するか、データベースエントリをクリーンアップします。

モジュールアンインストール後のデータベースクリーンアップ

モジュールが適切なクリーンアップなしにアンインストールされると、file_usageに孤立したエントリが残る可能性があります。「使用中で管理対象外」を使用してこれらの古い使用レコードを見つけて削除します。

重複ファイルアップロードの統合

ユーザーが同じファイルを複数回アップロードして重複が作成された場合、「ファイル参照の統合」レポートを使用して同じ名前のファイルを特定し、単一のエンティティに統合して、すべての参照を自動的に更新します。

サーバー移行後のファイル整合性検証

サイトを新しいサーバーに移動した後、すべてのレポートを実行してファイルシステムとデータベースが同期していることを確認します。これにより、移行中に正しくコピーされなかったファイルを特定できます。

file_usageテーブルの整合性監査

「使用中で未参照」と「参照中で未使用」レポートを使用して、file_usageテーブルが実際のコンテンツ参照を正確に反映していることを確認します。不整合を修正してデータベースの整合性を維持します。

Tips

  • 削除または統合操作を実行する前に、必ずデータベースとファイルディレクトリのバックアップを取ってください
  • ファイルを削除する際は、正しい項目が選択されていることを確認するために小さなバッチから始めてください
  • css、js、画像スタイル派生物などのシステム生成ディレクトリをスキップするために除外設定を使用してください
  • 大規模サイトでは、初期ページ読み込み時のタイムアウトを防ぐために適切な最大レコード制限(250-500)を設定してください
  • 最大レコード制限に達するとバッチ処理ボタンが表示され、タイムアウトなしに完全なデータセットにアクセスできます
  • 「管理対象で未使用」レポートは慎重にレビューしてください - 一部の未使用ファイルは意図的なものである可能性があります(例:プレースホルダー画像、一時アップロード)

Technical Details

Admin Pages 9
Audit Files /admin/config/system/auditfiles

ファイルシステムパス、除外ルール、ドメイン処理、レポート表示オプションを含むすべてのAudit Filesレポートのグローバル設定を構成します。

Audit Files /admin/reports/auditfiles

すべてのAudit Filesレポートのメインランディングページ。ファイルの不整合を分析・修正するための7つの専門レポートへのリンクを提供します。

データベースに未登録 /admin/reports/auditfiles/notindatabase

サーバーのファイルシステムに存在するが、file_managedデータベーステーブルで追跡されていないファイルを一覧表示します。これらは、親コンテンツが削除された孤立ファイル、適切にクリーンアップされなかったモジュールからのファイル、またはDrupal外(FTPなど)でアップロードされたファイルである可能性があります。レポートにはファイルのパス名、MIMEタイプ、サイズ、最終更新日が表示されます。

サーバーに存在しない /admin/reports/auditfiles/notonserver

file_managedデータベーステーブルにエントリがあるが、サーバーのファイルシステムに存在しないファイルを一覧表示します。これらの欠落ファイルは、コンテンツで壊れた画像、ダウンロード失敗、その他の表示問題を引き起こす可能性があります。

管理対象で未使用 /admin/reports/auditfiles/managednotused

file_managedデータベーステーブルに存在するが、file_usageテーブルにエントリがないファイルを一覧表示します。これは一時ファイルやガベージコレクション待ちのファイルでは通常のことです。期待される動作かどうかを確認するためにレビューしてください。

使用中で管理対象外 /admin/reports/auditfiles/usednotmanaged

対応するファイルエンティティがfile_managedに存在しないfile_usageテーブルのエントリを一覧表示します。これらは存在しないファイルを参照する孤立した使用レコードです。

使用中で未参照 /admin/reports/auditfiles/usednotreferenced

file_usageテーブルにエントリがあるが、使用しているはずのコンテンツで参照されなくなったファイルを一覧表示します。コンテンツエンティティのファイルフィールドにはそのファイルへの参照が含まれなくなっています。

参照中で未使用 /admin/reports/auditfiles/referencednotused

file_usageテーブルに対応するエントリがない、コンテンツエンティティに添付されたファイルフィールドで見つかったファイル参照を一覧表示します。これらの参照は通常file_usageで追跡されるべきです。

ファイル参照の統合 /admin/reports/auditfiles/mergefilereferences

ファイル名でグループ化されたfile_managed内のすべてのファイルを一覧表示し、潜在的な重複を表示します。同じファイル名を持つ複数のファイルエンティティを単一の正規ファイルに統合し、使用レコードを統合してディスク容量を節約できます。

権限 2
Audit Filesモジュールの設定

ファイルシステムパス、除外設定、レポートオプションなどのAudit Filesモジュール設定を構成できます。この権限は制限付きとしてマークされています。

Audit Filesレポートへのアクセス

Audit Filesレポートにアクセスし、ファイルの追加、削除、統合などの監査アクションを実行できます。

Troubleshooting 4
警告:POSTコンテンツの長さが制限を超えています / ヘッダー情報を変更できません

Audit Files設定ページで「最大レコード数」の値を低く設定し、レポートページの「すべてのレコードを読み込む」ボタンを使用してデータをバッチ処理します。

致命的エラー:最大実行時間を超えました

「最大レコード数」の値を低く設定して初期クエリを制限します。バッチ処理機能により、PHPタイムアウト制限に達することなく残りのレコードを読み込めます。

レポートが遅い、またはタイムアウトする

監査が不要な多くのファイルがあるディレクトリ(css、js、stylesなど)に適切な除外パスを設定します。ページあたりの項目数と最大レコード数の設定を減らします。

ファイルを削除したがレポートにまだ表示される

変更後にDrupalのCacheをクリアします。モジュールはデータベースを直接クエリしますが、キャッシュされたデータが古い表示を引き起こす可能性があります。

Security Notes 4
  • 「configure audit files reports」権限は、設定ミスの潜在的影響のため制限付きアクセスとしてマークされています
  • 削除操作は永続的で元に戻せません - 確認する前に選択を慎重に確認してください
  • ファイルの統合はすべてのコンテンツの参照を更新します - 正規ファイルの選択が正しいことを確認してください
  • これらのレポートはファイルシステムに関する詳細情報を提供するため、信頼できる管理者のみにアクセスを制限することを検討してください