Media Bulk Upload
DropzoneJSのドラッグ&ドロップインターフェースを使用して、複数のファイルを一括アップロードし、対応するメディアエンティティを自動作成します。
media_bulk_upload
インストール
composer require 'drupal/media_bulk_upload:^3.0'
概要
Media Bulk Uploadは、複数のメディアファイルのアップロードと管理プロセスを効率化するDrupalモジュールです。DropzoneJSライブラリを活用して、ファイルを一括アップロードするためのユーザーフレンドリーなドラッグ&ドロップインターフェースを提供し、アップロードされた各ファイルに対してメディアエンティティを自動作成します。
このモジュールは、管理者が異なる設定を持つ複数の一括アップロードフォームを作成できる設定エンティティシステムを導入しています。各設定では許可するメディアタイプを指定でき、ファイル拡張子に基づいてアップロードされたファイルに適切なメディアタイプを自動的に割り当てることができます。複数のメディアタイプ間でファイル拡張子が重複する場合、モジュールはファイルを一致するタイプのいずれかに自動的に割り当てます。
強力な機能として共有フィールド機能があり、アップロードフォームで選択されたすべてのメディアタイプに共通するフィールドを表示します。これにより、ユーザーはすべてのアップロードされたメディアエンティティに適用されるメタデータ(代替テキスト、タイトル、カスタムフィールドなど)を事前入力でき、コンテンツ作成ワークフローを大幅に高速化できます。また、フォームモードもサポートしており、管理者は一括アップロードフォームに表示するフィールドを制御できます。
Features
- DropzoneJSライブラリを使用したドラッグ&ドロップファイルアップロードインターフェースで、迅速かつ直感的な一括ファイルアップロードが可能
- 異なるメディアタイプの組み合わせを持つ複数の一括アップロードフォーム設定を可能にする設定エンティティシステム
- ファイル拡張子マッピングに基づく自動メディアタイプ検出と割り当て
- 共有フィールドサポート - 選択されたすべてのメディアタイプに共通するフィールドを表示し、一括メタデータ入力が可能
- アップロードフォームに表示するフィールドをカスタマイズするためのフォームモード選択
- メディアタイプ設定ごとのファイルサイズ検証、個々のメディアタイプのアップロード制限を尊重
- 大量のファイルアップロードを効率的に処理するバッチ処理
- 各一括アップロード設定に対する動的な権限生成により、きめ細かなアクセス制御が可能
- Admin Toolbar Extra Toolsモジュールとの統合により、便利なメニュー配置が可能
- 拡張子ベースのルーティングにより、単一のアップロードフォームで複数のメディアタイプをサポート
Use Cases
フォトギャラリー用の画像を一括アップロード
「画像」メディアタイプのみを選択してMedia Bulk Configを作成します。ユーザーは複数の画像を一度にドラッグ&ドロップでき、オプションですべてのアップロードされた画像に適用される共有の代替テキストやその他のメタデータフィールドを入力できます。
コンテンツ編集者向けの混合メディアアップロード
画像、ドキュメント、動画メディアタイプを含むMedia Bulk Configを作成します。システムは拡張子に基づいてファイルタイプを自動検出し、適切なメディアエンティティを作成します。例えば、.jpgファイルは画像メディアに、.pdfファイルはドキュメントメディアに、.mp4ファイルは動画メディアになります。
メタデータ付きの効率的なアセット取り込み
タクソノミーターム参照やカスタムフィールドを含むフォームモードを設定します。一括アップロード時に、コンテンツ編集者はカテゴリを選択したりメタデータを一度入力すれば、すべてのアップロードされたメディアアイテムに適用され、各アイテムを個別に編集する場合と比較して大幅な時間短縮になります。
アクセス制御付きの部門別アップロードフォーム
異なる部門用に別々のMedia Bulk Configエンティティを作成します(例:「マーケティングアセット」、「人事ドキュメント」)。対応する「use X bulk upload form」権限を適切なロールに付与します。各部門は指定されたアップロードフォームにのみアクセスできます。
大量のメディア移行
多くのメディアファイルを含むコンテンツを移行する場合、一括アップロード機能を使用してファイルを素早くインポートできます。バッチ処理により、大量のファイルがタイムアウトの問題なく効率的に処理されます。
Tips
- 異なるユースケース用に別々の一括アップロード設定を作成します(例:画像専用、ドキュメント専用)。これにより、よりクリーンなユーザー体験が提供されます
- フォームモードを使用して一括アップロードフォームに表示するフィールドを制御します。必須フィールドのみを含む「bulk_upload」フォームモードを作成して、アップロードプロセスを効率化します
- 一括アップロードリンクはMedia Libraryおよびコンテンツ > メディア管理ページに自動的に表示され、コンテンツ編集者が素早くアクセスできます
- 最大ファイルサイズは選択されたメディアタイプの中で最も高い制限を尊重するため、大きなファイルサイズ制限を持つメディアタイプを含めると、そのフォームでのすべてのアップロードで許可されるサイズが増加します
- すべての共有フィールドは一括アップロード中にオプションになるため、必須フィールドの検証は後で個々のメディアアイテムを編集する際に行われます
Technical Details
Admin Pages 6
/admin/config/media/media-bulk-config
設定されたすべてのMedia Bulk Configエンティティを一覧表示します。ここから管理者は一括アップロードフォーム設定の追加、編集、削除ができます。各設定は、一括アップロードで利用可能なメディアタイプと使用するフォームモードを定義します。
/admin/config/media/media-bulk-config/add
新しいMedia Bulk Configエンティティを作成するフォームです。管理者がメディアタイプと共有フィールド用のフォームモードを選択して、新しい一括アップロードフォームを定義できます。
/admin/config/media/media-bulk-config/{media_bulk_config}/edit
既存のMedia Bulk Configエンティティを変更するフォームです。ラベル、メディアタイプ、フォームモード設定を変更できます。
/admin/config/media/media-bulk-config/{media_bulk_config}/delete
Media Bulk Configエンティティを削除する確認フォームです。一括アップロードフォーム設定は削除されますが、それを使用して作成されたメディアエンティティには影響しません。
/media/bulk-upload
一括メディアアップロードのランディングページです。Media Bulk Configが1つだけ存在する場合、ユーザーは自動的にそのアップロードフォームにリダイレクトされます。複数の設定が存在する場合、ユーザーの権限に基づいて利用可能な一括アップロードフォームの一覧が表示されます。
/media/bulk-upload/{media_bulk_config}
ユーザーが複数のファイルをドラッグ&ドロップまたは選択してアップロードできる実際の一括アップロードフォームです。許可されたメディアタイプ、ファイル拡張子、最大ファイルサイズに関する情報が表示されます。フォームモードが設定されている場合、一括メタデータ入力用の共有フィールドが表示されます。
権限 2
Hooks 2
hook_help
hook_help()を実装して、ヘルプページでモジュールのヘルプテキストを提供します
hook_menu_links_discovered_alter
Admin Toolbar Extra Toolsモジュールと統合するためにメニューリンクを変更します。Admin Toolbar Extra Toolsが有効な場合、一括アップロードメニュー項目をコンテンツ > メディアの下に配置します。
Troubleshooting 6
DropzoneJSモジュールが正しくインストールされ、DropzoneJS JavaScriptライブラリが正しい場所に配置されていることを確認してください。DropzoneJSモジュールのインストール手順に注意深く従ってください。
ファイル拡張子が選択されたメディアタイプの許可された拡張子のいずれかに含まれていることを確認してください。また、メディアタイプのターゲットフィールドに正しいファイル拡張子設定があることも確認してください。
ユーザーは各設定に対して特定の「use [config_id] bulk upload form」権限が必要です。/admin/people/permissionsでこの権限を付与してください。
Media Bulk Configでフォームモードが選択されていることを確認してください。また、期待するフィールドがそのフォームモードで選択されたすべてのメディアタイプに表示するよう設定されていることも確認してください。選択されたすべてのメディアタイプに存在するフィールドのみが表示されます。
最大ファイルサイズは選択されたメディアタイプの中で最大のmax_filesize設定によって決定されます。個々のメディアタイプのフィールド設定を確認して調整してください。また、PHPのupload_max_filesizeとpost_max_size設定も確認してください。
メディアタイプ間でファイル拡張子が重複する場合(例:画像とドキュメントの両方が.pngを受け入れる場合)、割り当ては自動的に行われます。正確な制御が必要な場合は、重複しない拡張子を使用するか、各メディアタイプ用に別々の一括アップロードフォームを作成することを検討してください。
Security Notes 4
- 一括アップロードフォームへのアクセスはきめ細かな権限によって制御されます。各設定には独自の権限があります
- ユーザーは一括アップロード権限に加えて、適切なメディア作成権限も必要です
- ファイル検証は、許可された拡張子やファイルサイズ制限を含む設定されたメディアタイプ設定に基づいて行われます
- このモジュールはDrupalのファイル処理システムを使用しており、悪意のあるファイルアップロードに対するセキュリティを提供します