Sitecore のメディアライブラリの機能をいくつか紹介をしていきます。今回は、ファイルをまとめてアップロードする機能、そしてダウンロードではなくてブラウザで表示をしたいという2つのシナリオに関して紹介をします。
![](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F3tyaMC1utERADgoDy3lmL0%2F3c2ded7e45bf1e67fe02893098c26730%2Fmedialibrary05.png&w=3840&q=75)
Zip ファイルをサーバー側で展開する
メディアファイルをアップロードする際に1つ1つ丁寧にアップロードするのは、ミスオペレーションにもつながりかねません。そこで、今回は Zip ファイルに階層を設定して、それをアップロードするという手順を紹介します。まず最初に、以下のようにフォルダ階層を設定した Zip ファイルを作成します。
![medialibrary01.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2FYT6n9vN8QKzSijhmmotjg%2F42ebbdc85417c032b3eb6a5fb62a1efb%2Fmedialibrary01.png&w=3840&q=75)
今回はメディアライブラリに Campaign というフォルダを作成しました。
![medialibrary02.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2FHW256uVuaEVEXZLvjIib5%2F0627db1547ecaaa217c8c0e08f3a93df%2Fmedialibrary02.png&w=3840&q=75)
フォルダの右側に表示されている、アップロード(複数 - 高度な設定) のボタンをクリックして、展開したいファイルを指定します。合わせて、ZIP アーカイブを展開する の項目をチェックしてください。
![medialibrary03.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F43IcjDF9udkNGR4zEQa2nm%2F603af8507839822b29301f8fd00393c3%2Fmedialibrary03.png&w=3840&q=75)
![medialibrary04.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F4YrnZfqypj0N95qWxoA2x8%2F9b8746dc6a4979cbcb834425eb647820%2Fmedialibrary04.png&w=3840&q=75)
アップロードしたファイルが展開されていることがわかります。警告が出ているのは代替テキストが設定されていないためで、後で修正することもできますし、警告のままでも利用できます。実際にファイルが展開されていることがツリービューでも確認することができます。
![medialibrary05.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F3tyaMC1utERADgoDy3lmL0%2F3c2ded7e45bf1e67fe02893098c26730%2Fmedialibrary05.png&w=3840&q=75)
HTML ファイルの対応
上記と同じように HTML ファイルのアップロードをするとどうなるでしょうか?今回は非常にシンプルですが、以下の内容が記載されている HTML ファイルを作成してみました。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>タイトル</Title>
</head>
<body>
<h1>タイトル</h1>
<p>ここに文章を入れる</p>
</body>
</html>
ブラウザで表示すると以下のようになります。
![medialibrary06.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F1qwZd6LDQnxUpF2RX3whdd%2F4d8d656c80a86f48f3ec63e73bab2c45%2Fmedialibrary06.png&w=3840&q=75)
このファイルを先ほど同様に、今回は1つのファイルなのでシンプルにアップロードします。
![medialibrary07.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2FmB8RwU0Z58Yq5HKuKswyk%2Fc7dfa86ae1f23d9d684813224c7f7be8%2Fmedialibrary07.png&w=3840&q=75)
まず、事前にアップしていた画像ファイルに対して、ブラウザからアクセスをしてみます。URL は以下のような形になります。
- https://yourservername/-/media/campaign/London/pexels-david-geib-3220846.jpg
アクセスをすると当然ファイルを参照できます。
![medialibrary08.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F3JARUkHkMXeK8WrxoCDznz%2F5e62e3d9be751260035650035e2c58ee%2Fmedialibrary08.png&w=3840&q=75)
それでは HTML ファイルは?となると、以下のような URL にアクセスすることになります。
- https://yourservername/-/media/campaign/sample.html
するとどうでしょうか。なんと HTML ファイルがダウンロードされてしまいました。
![medialibrary09.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F5GB2o36k14HyP6eIRsOYiy%2Ff3814514bd67b1c7abfdacaf6a56cb62%2Fmedialibrary09.png&w=2048&q=75)
これはメディアライブラリに登録されている HTML はデフォルトではダウンロードをする設定になっているためです。この設定は、 \App_Config\Sitecore.config に記載されており、以下の部分が対象となります。
<mediaType name="HTML" extensions="htm,html,stm">
<mimeType>text/html</mimeType>
<forceDownload>true</forceDownload>
<sharedTemplate>system/media/unversioned/file</sharedTemplate>
<versionedTemplate>system/media/versioned/file</versionedTemplate>
<defaultThumbnailFile>WordProcessing/32x32/imp_exp_html.png</defaultThumbnailFile>
</mediaType>
forceDownload はブラウザではダウンロードの挙動を推奨している設定となります。画像などはすべて falses に設定されていることがわかります。forceDownload の項目を false に設定をして、iisreset で Sitecore を再起動します。
![medialibrary10.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F1w6sMzMWCu846xWTsvGYM1%2F3fee5db1e7521910b9d43a57c6a60b46%2Fmedialibrary10.png&w=3840&q=75)
メディアライブラリに保存している HTML のファイルをブラウザで表示することができました。
まとめ
今回はファイルをまとめてアップする方法、およびメディアライブラリに HTML ファイルをアップロードして、表示する方法を紹介しました。これにより、CMS のツールで編集することがない HTML ファイルを展開することができるようになります。なお、この手順はサイト移行などでは利用しない方が良いです。理由は以下の通りです。
- メディアライブラリはサーバー上に置いているファイルの表示よりもパフォーマンスがよくありません
- このため、サイトの移行の際にメディア、HTML ファイルを置いてという手順はパフォーマンス低下につながります
- メディアライブライで管理をせず、Sitecore がインストールされている環境にフォルダを切って、ファイルを配置してください
- この形にすることで、メディアライブラリよりもパフォーマンスよくファイルを表示することができます。
フォルダを切って HTML ファイルの配置をすることで、既存のサイトからのスムーズな移行を実施していきつつ、コンテンツ管理をするエリアを広げていくことで、より効率的なサイト運用が可能となります。