IMCE ファイルマネージャー
IMCEは、AJAXベースのファイルマネージャーで、ユーザーがサーバー上のファイルを閲覧、アップロード、管理できます。個人ディレクトリやユーザークォータにも対応しています。
imce
インストール
composer require 'drupal/imce:^3.1'
概要
IMCE(Image for TinyMCE)は、サーバー上のファイルを管理するためのAJAXベースのインターフェースを提供する、Drupal用の包括的なファイルマネージャーモジュールです。名前はTinyMCE Editor用の画像ブラウザとしての当初の目的に由来していますが、IMCEはフル機能のファイル管理ソリューションへと進化しました。
このモジュールでは、管理者がフォルダへのアクセス、ファイルアップロード権限、許可するファイル拡張子、サイズ制限、ディスククォータを定義する設定プロファイルを作成できます。これらのプロファイルはファイルシステム(public、privateなど)ごとにユーザーロールに割り当てることができ、きめ細かいアクセス制御が可能です。ユーザートークンを使用した個人フォルダにも対応しており、各ユーザーが専用のディレクトリスペースを持つことができます。
IMCEは、フォルダツリーナビゲーション、ソートオプション付きのファイル一覧、ファイルプレビューパネル、各種操作用のツールバーボタンを備えた、モダンでレスポンシブなユーザーインターフェースを提供します。ファイルのアップロード、新規フォルダの作成、ファイルとフォルダの削除、画像のリサイズに対応しています。CKEditor 5、BUEditor、Drupalネイティブのファイル/画像フィールドウィジェットとの統合により、ユーザーはこれらのコンテキストから直接ファイルを参照・選択できます。
Features
- フォルダツリーナビゲーションとファイル一覧を備えたAJAXベースのファイルブラウザ
- ファイルシステムごとのロールベースアクセス制御用設定プロファイル
- ユーザートークンを使用した個人フォルダ(例:[user:uid]、[user:name])
- 拡張子、サイズ制限、画像サイズのバリデーション付きファイルアップロード
- 使用中のファイルの削除を防ぐファイル使用状況チェック付きファイル削除
- アクセス可能なディレクトリ内での新規フォルダ作成
- コピーオプションとサイズバリデーション付き画像リサイズ
- ユーザーごとのディスククォータ管理
- Drupal画像スタイルを使用したサムネイルプレビューサポート
- 画像およびリンクツールバーボタンによるCKEditor 5統合
- 設定可能なファイルブラウザとしてのBUEditor統合
- 「ファイルブラウザを開く」ボタン付きのファイル/画像フィールドウィジェット統合
- 複数のファイルシステムサポート(public、private、S3など)
- ファイルの絶対URLおよび相対URL生成
- ファイルマネージャーパス用の管理テーマオプション
- セッションベースのアクティブフォルダ記憶機能
Use Cases
個人ユーザーディレクトリ
「users/user[user:uid]」のようなユーザートークンを含むフォルダパスを設定することで、各ユーザーに個人ファイルスペースを作成します。各ユーザーは自分のディレクトリ内のファイルのみを表示・管理でき、初回アクセス時にフォルダが自動作成されます。
ロールベースのメディア管理
コンテンツエディター(共有メディアフォルダへのフルアクセス)、作成者(個人フォルダへのアップロードのみ)、メンバー(閲覧のみ)用のプロファイルを作成して、異なるアクセスレベルを設定します。ファイルシステムごとにロールにプロファイルを割り当てます。
CKEditor 5での画像挿入
コンテンツエディターがファイルサーバーからコンテンツに画像を挿入できるようにします。CKEditor 5でテキストフォーマットを設定し、組み込みの画像アップロードを無効にして、IMCE画像ツールバーボタンを使用します。ユーザーは画像を参照、アップロード、選択できます。
プライベートファイルのダウンロード
認証が必要なプライベートファイルシステム内のファイルを管理します。IMCEはhook_file_download()を実装してアクセスを検証し、ユーザーがIMCEアクセス権を持つファイルのみをダウンロードできるようにします。
画像ギャラリー管理
画像専用の拡張子(jpg png gif webp)、画像サイズ制限、リサイズ権限を持つプロファイルを設定します。ユーザーは最大サイズに自動的にスケールされる画像をアップロードし、既存の画像を手動でリサイズできます。
マルチサイト共有ストレージ
リモートファイルURLを正しく処理しパフォーマンスを向上させるために、プロファイルで「URL変更」と「画像サイズの遅延読み込み」オプションを有効にして、S3などのリモートファイルシステムでIMCEを使用します。
Tips
- /imceにカスタムメニュー項目を作成して、エンドユーザーにファイルマネージャーへの直接アクセスを提供する
- 画像ダイアログでIMCEリンクを表示するにはCKEditor 5の画像アップロードを無効にするか、専用のIMCE Imageツールバーボタンを使用する
- 複製操作を使用して、異なる設定を持つ類似のプロファイルをすばやく作成する
- サムネイルプレビューは多数の画像がある場合にファイルブラウザが遅くなる可能性があるため、注意して有効にする
- 複数のロールを持つユーザーに適用されるプロファイルを制御するにはロールの重み順を使用する(最後に割り当てられたものが優先)
- フロントエンドテーマでUIの問題が発生する場合は「IMCEパスに管理テーマを使用する」を有効にする
- 個人フォルダはユーザーが初めてアクセスしたときに自動的に作成される
- ブラウザは便利さのためにユーザーセッションで最後にアクティブだったフォルダを記憶する
Technical Details
Admin Pages 9
/admin/config/media/imce
設定フォームと設定プロファイル一覧の両方を表示するIMCEのメイン設定ページ。管理者はファイルシステムごとにユーザーロールへプロファイルを割り当て、グローバル設定を管理できます。
/admin/config/media/imce/add-profile
フォルダアクセス、権限、ファイル制限を定義する新しいIMCE設定プロファイルを作成するフォーム。
/admin/config/media/imce/{imce_profile}
既存のIMCE設定プロファイルを編集します。
/admin/config/media/imce/{imce_profile}/delete
IMCE設定プロファイルを削除するための確認フォーム。
/admin/config/media/imce/{imce_profile}/duplicate
既存の設定プロファイルのコピーを新しい名前で作成します。
/admin/imce/help
IMCEの設定と使用方法に関するドキュメントとチュートリアル動画を含むヘルプページ。
/admin/imce/browser
管理者がファイルを直接管理できる、iframeに埋め込まれた管理用ファイルブラウザインターフェース。
/imce/{scheme}
メインのIMCEファイルブラウザインターフェース。{scheme}パラメータでファイルシステム(public、privateなど)を指定します。指定がない場合はサイトのデフォルトファイルシステムが使用されます。
/user/{user}/imce
割り当てられたプロファイルで「ユーザープロファイルページにファイルブラウザタブを表示」オプションが有効になっているユーザー向けに、IMCEファイルブラウザを表示するユーザープロファイルタブ。
権限 1
Hooks 2
hook_imce_supported_widgets_alter
IMCEと統合できるサポート対象のファイルフィールドウィジェットのリストをモジュールが変更できるようにします。
hook_imce_plugin_info_alter
IMCEプラグイン定義をモジュールが変更できるようにします。
Security Notes 7
- 「administer imce」権限は制限付きで、すべてのファイル管理機能へのフルアクセスを付与する
- 匿名ユーザーロール用のプロファイルを設定する際に匿名ユーザーアクセスの警告が表示される
- ファイル使用状況チェックにより、明示的に無効にしない限り、コンテンツで参照されているファイルの削除が防止される
- ファイル名のバリデーションにより、ディレクトリトラバーサルと特殊文字が防止される
- CSRFトークンバリデーションがすべてのAJAX操作を保護する
- ユーザートークンを使用した個人フォルダパスにより、ユーザーが他のユーザーのディレクトリにアクセスできないようにする
- IMCEを通じてアップロードされたファイルは永続的として設定され、file_managedテーブルに登録される