Media Alias Display
メディアエンティティページ全体をレンダリングする代わりに、メディアURLエイリアス経由でファイルを直接表示できるようにします。
media_alias_display
インストール
composer require 'drupal/media_alias_display:^2.1'
composer require 'drupal/media_alias_display:^1.0'
概要
Media Alias Displayは、URLを通じてメディアエンティティにアクセスする方法を変更するモジュールです。すべてのフィールドを含む標準的なメディアエンティティページを表示する代わりに、メディアエイリアスURLにアクセスした際に実際のファイルを直接提供します。
この機能は、PDF、画像、その他のダウンロード可能なファイルに対してクリーンで読みやすいURLが必要な組織にとって特に有用です。例えば、ユーザーがメディアエンティティのラッパーを見る代わりに、/sites/default/files/annual-report-2024.pdfではなく/annual-report-2024のようなフレンドリーなURLを使用してファイルを直接表示またはダウンロードできます。
主な利点は、メディアエンティティがサイト内の複数の場所で参照されている場合、一箇所でファイルを更新するとすべての場所で自動的に更新されることです。URLエイリアスは一貫したまま、基盤となるファイルは必要に応じて変更できます。
Features
- メディアエンティティページ全体をレンダリングする代わりに、メディアエイリアスURL経由でファイルを直接表示
- 現在のメディアリビジョンと特定のリビジョンURLの両方で動作
- URLに?edit-mediaを追加することでメディア編集ページへの素早いナビゲーションをサポート(編集権限が必要)
- ?downloadまたは?dlクエリパラメータを追加することで、インライン表示ではなくファイルダウンロードを強制
- モジュール機能を完全に無効にするキルスイッチ設定を提供
- 機能を特定のメディアバンドルに限定可能
- パブリックとプライベートの両方のファイルシステムを正しく処理
- 適切なキャッシュコンテキストとタグによる包括的なキャッシュを含む
- メディアアイテムにファイルソースがない場合やファイルがディスク上に存在しない場合に通知をログに記録
- 表示動作をエンティティごとにオーバーライドするためのサブモジュールを含む
Use Cases
クリーンなURLを持つドキュメントライブラリ
PDF、Word文書、その他のファイルに/policies/privacy-policyや/forms/application-formのようなフレンドリーなURLでアクセスできるドキュメントライブラリを作成します。ユーザーはこれらのクリーンなURLを共有でき、ドキュメントの更新が必要な場合は、メディアエンティティ内のファイルを置き換えるだけで済みます。URLは同じままです。
画像ギャラリーへの直接アクセス
URLエイリアス経由で高解像度画像への直接アクセスを許可します。訪問者はメディアエンティティラッパーページを見ることなく、画像URLを直接ブックマークまたは共有できます。
機密文書の強制ダウンロード
?downloadまたは?dlクエリパラメータを使用して、ブラウザにインライン表示ではなくファイルをダウンロードさせます。ユーザーが印刷する必要があるフォームやブラウザ内で表示すべきでない文書に便利です。
メディア編集への素早い管理者アクセス
コンテンツ編集者はURLに?edit-mediaを追加することで、メディアアイテムの編集にすばやくナビゲートできます。これはファイルを表示しながら管理インターフェースをナビゲートせずにすぐに更新を行う必要がある場合に特に便利です。
選択的なバンドル設定
ドキュメントなどの特定のメディアタイプのみで直接ファイル表示を有効にし、画像やビデオのメディアタイプはサムネイルとメタデータを含む完全なエンティティページとしてレンダリングを維持します。
緊急無効化スイッチ
キルスイッチ機能を使用して、アンインストールせずにモジュールの機能をすばやく無効にします。トラブルシューティングや標準的なメディアエンティティ表示への一時的な復帰に便利です。
注目コンテンツのエンティティごとのオーバーライド
Field Overrideサブモジュールを使用して、特定のメディアエンティティを完全なエンティティページとして表示するようにマークします。特定の注目ドキュメントでファイルと一緒に追加のコンテキスト、関連コンテンツ、またはメタデータを表示する必要がある場合に便利です。
Tips
- Pathautoを使用して、メディアエンティティの名前やその他のフィールドに基づいてクリーンなURLエイリアスを自動生成する
- 任意のメディアエイリアスURLに?edit-mediaを追加すると、メディア編集フォームにすばやくジャンプできる(編集権限が必要)
- ?downloadまたは?dlクエリパラメータを使用して、インライン表示ではなくファイルダウンロードを強制する
- モジュールはパブリックとプライベートの両方のファイルシステムで動作し、適切なキャッシュヘッダーを自動的に設定する
- Field Overrideサブモジュールが有効な場合、特定のメディアエンティティでエイリアス表示を選択的に無効にできる
- 設定変更時にキャッシュは適切に無効化されるが、古い動作に気づいた場合は手動でキャッシュをクリアする
Technical Details
Admin Pages 1
/admin/config/media/media_alias_display
URLエイリアス経由でファイルを直接表示するメディアバンドルを設定し、キルスイッチオプションでモジュール全体の機能を制御します。
Troubleshooting 5
/admin/config/media/media-settingsで「Standalone media URL」が有効になっていることを確認してください。ステータスレポートページで警告がないか確認してください。/admin/config/media/media_alias_displayでキルスイッチが有効になっていないことを確認してください。
/admin/config/media/media_alias_displayでバンドル設定を確認してください。特定のバンドルが選択されている場合、それらのみがエイリアス表示機能を使用します。すべてのバンドルで有効にするにはすべての選択をクリアしてください。
モジュールは適切なCache-Controlヘッダーを使用してプライベートファイルを自動的に処理します。Drupalの設定でプライベートファイルシステムが正しく構成されていることを確認してください。
この機能を使用するには、ユーザーがメディアバンドルに対する適切な編集権限(「edit own [bundle] media」、「edit any [bundle] media」、または「administer media」のいずれか)を持っている必要があります。
URLに?downloadまたは?dlを追加して、ブラウザにインライン表示ではなくファイルをダウンロードさせてください。
Security Notes 4
- モジュールはDrupalのアクセス制御システムを尊重し、アクセス可能なメディアエンティティのファイルのみを提供する
- プライベートファイルは不正なキャッシュを防ぐためにプライベートCache-Controlヘッダーで提供される
- ?edit-mediaリダイレクトは適切なメディア編集権限を持つユーザーのみ機能する
- このモジュールは新しい権限を追加せず、既存のメディアおよびサイト設定権限に依存する