企業向けCMSとしてとても便利なconcrete5の高機能なファイルマネージャー
Posted by admin at 11:15 日時 2013/08/07
実はconcrete5を選ぶ理由として挙げられることが多いのがファイルマネージャーの存在です。ウェブページだけでなく、ファイルもきちんと管理できるということは特に企業向けのCMSとしては重視されるポイントです。concrete5はもともとエンタープライズ向けのCMSであったのが、オープンソースになって広く使われるようになったという経緯があり、初期のバージョンからアセット管理機能は充実していました。今日はconcrete5のファイルマネージャー機能についてご紹介しようと思います。
また、非公開のはずのPDFが実はURLを類推することで誰でもアクセス可能になっていたという、一時期話題になった件に対応する方法についても最後に紹介しています。
なお、この記事はconcrete5.6.1.2日本語版をもとに書いています。
ファイルマネージャーへのアクセス
ページ内に画像やファイルのダウンロードリンクを追加する際に、ファイルマネージャーが開き、ファイルのアップロードをしたり、アップロード済みのファイルを選択したりできるようになります。
「記事」ブロックでは、エディタの上に「画像を追加」「ファイルを追加」のリンクがあり、クリックするとファイルマネージャーが開きます。
「ファイル」ブロックでは、ファイルの選択をクリックするとファイルマネージャーが開きます。
また、管理画面からもファイルマネージャーにアクセスし、ファイルのアップロードや管理が行えます。
ファイルマネージャーの使い方
ファイルマネージャー画面では、アップロード済みのファイルが一覧で表示されています。キーワードで検索したり、表示件数を変更したりすることができます。
ファイル編集メニュー
ファイルマネージャーでファイルを選択すると、ファイル編集メニューが開きます。
- 選択:クリックしたファイルを選び、コンテンツに挿入します。
- 表示:画像などを表示して確認することができます。
- 編集:画像にトリミングなどの編集を行うことができます。
- 設定:ファイルに関連する設定を行うことができます。
- 置き換え:新しいファイルをアップロードしてファイルを置き換えることができます。ファイルを置き換えると、記事ブロックやファイルブロックで挿入した画像やファイルは自動で差し替わります。ただし、後述のとおりファイルを置き換えてもファイルの編集履歴は残りますので、サーバー上には置き換える前のファイルが残されています。
- コピー:ファイルを複製することができます。
- セット:ファイルを管理するためにセットを設定することができます。
- アクセスと権限:ファイルのアクセス権限を設定したり、表示するためのパスワードを設定できます。
- 削除:ファイルを削除します。
ファイルの一括処理
ファイルマネージャーでファイルの横のチェックボタンにチェックを入れると、複数のファイルに一括で処理を行うことができます。
- 選択:複数のファイルを同時にコンテンツに挿入することができます。
- ダウンロード:選択したファイルをZIP圧縮してまとめてダウンロードできます。
- セット:選択したファイルにセットを設定できます。
- 設定:複数のファイルの設定を一括で変更できます。
- 再スキャン:画像サイズなどのデータが自動で保存されますが、設定値を再スキャンすることができます。
- コピー:選択したファイルを一括で複製できます。
- 削除:選択したファイルを一括で削除できます。
ファイルのアップロード
ファイルマネージャーからファイルをアップロードするには、ファイルをローカルから選択したあと、「ファイルをアップロード」ボタンをクリックします。アップロードが完了すると、アップロード完了ウィンドウが表示されます。この画面で、ファイルの「タイトル」「説明」「タグ」をクリックすると、それぞれの値を変更することができます。ファイルのタイトルや説明を入れておくとファイルが管理しやすくなるでしょう。
アップロード完了ウィンドウで「その他の設定」タブを開くと、基本設定以外の属性を確認できます。カスタマイズによって属性を追加して利用することができますが、標準では何も変更しなくてよいです。
アップロード完了ウィンドウで「セット」タブを開くと、アップロードしたファイルにセットを設定することができます。
セットとは
多くのOSではファイルをフォルダーで管理しますが、concrete5では少し違った仕組みでファイルを整理します。それが「セット」です。もしGmailをお使いであれば、Gmailにおける「ラベル」と同じような機能だと言えば分かりやすいと思います。一つのファイルは複数のセットに含めることができます。これはフォルダーにはない利点です。
セットをつけると、ファイルマネージャーで素早くファイルを絞り込み検索することができます。スターを付けると素早くスター付きのセットに入れることができますので、よく使うファイルにはスターを付けておくとよいでしょう。
マルチアップロード
ファイルマネージャーで「マルチアップロード」ボタンをクリックすると、ファイルを1つずつ追加する通常の方法とは違う方法でファイルをアップロードすることができます。
「マルチアップロード」タブでは、複数のファイルを一度にアップロードできます。「アップロードキュー」という文字の横のボタンをクリックすると、ローカルのファイルを複数選択することができます。複数のファイルをマルチアップロードした際は、アップロードしたファイルに対して一括でセットの指定ができます。
「サーバーから追加」タブでは、表示されているサーバー上の入稿用ディレクトリーにアップロードされているファイルが全て表示され、一度にファイルマネージャーに取り込むことができます。ブラウザ経由ではなく、FTPなどの方法でサーバーに一括でファイルをアップロードすることができますので、大量のファイルを一度にファイルマネージャーに追加したい時は便利です。
「リモートファイルを追加」タブでは、インターネット上にアップされているファイルのURLを指定すると、concrete5が自動的に取得してファイルマネージャーにダウンロードしてくれます。いちいちローカルにダウンロードしてからアップロードする必要がないので便利です。
詳細検索
concrete5では、複雑な条件でファイルマネージャーからファイルを検索して探すことができます。ファイルマネージャーの右上にある「詳細検索」リンクをクリックすると、追加フィルターの設定欄が開きます。追加フィルターを使うと、ファイルのサイズや拡張子、追加日時、追加されたページ、画像の大きさで絞り込むことができます。
「検索結果をカスタマイズ」リンクをクリックすると、検索結果に表示される項目や並び順を変更することができます。
「検索条件を保存」リンクをクリックすると、検索条件に合致したファイルにセットを設定することができます。
ファイル編集メニューの各項目の解説
編集
ファイル編集メニューからファイルの編集を行うことができます。ズームや回転を利用して、画像のトリミングを行えます。画質の調整などはできません。
設定
ファイルをアップロードした時と設定できる項目は同じですが、さらにファイルの編集履歴やアクセスログを閲覧することができます。
「バージョン」タブではファイルの編集履歴を確認することができます。トリミングを行ったり置き換えを行ったりすると、バージョンが一つ増え、変更を行う前のファイルも残されます。完全に削除したい場合は「削除」をクリックしてください。
「統計」タブではファイルのアクセスログを閲覧することができます。ただし、ログに記録されるのはファイルをダウンロードさせた時のみで、ページ内に表示されている画像の表示回数は記録されません。以前のバージョンではそれも記録されていましたが、ページ内の画像が増えるごとにページの表示が遅くなるので廃止されました。
アクセスと権限
ファイル編集メニューから「アクセスと権限」を選択すると、パスワード保護の設定ができます。パスワードを知らない人はダウンロードできないファイルを簡単に作ることができます。パスワードはひとつしか設定できません。
「保存場所」タブでは、ファイルの保存場所を移動することができます。ファイルの保存場所はあらかじめ設定しておく必要があります。ファイルの保存場所を設定するには、[管理画面 > システムと設定 > サーバー設定一覧 > ファイル保存場所]にアクセスしてください。
標準のファイル保存場所は、concrete5をインストールしたディレクトリ以下(インターネットからアクセスできる領域)に設定する必要がありますが、「別のファイルの保存場所」はドキュメントルート外(インターネットからアクセスできない領域)を設定することができます。この方法は、権限のない人間には絶対にアクセスすることができない完全な方法です。ただし、concrete5から該当のディレクトリーへの書き込み・読み出し権限が必要です。安価なレンタルサーバーではほとんどの場合で設定できないとおもいます。
ファイルの保存場所を設定しておけば、「保存場所」タブでアップロードしたファイルの保存場所を変更することができます。
さらに、「上級権限モード」を有効にしている場合は、ファイルごとにさらに詳細な権限設定を行うことができます。
ログインユーザーのファイルマネージャーへのアクセス権限の設定
ログインユーザーにどのようにファイルマネージャーを使わせるかは、[管理画面 > システムと設定 > 権限とアクセス > ファイルマネージャー権限]ページで設定できます。
運用ポリシーによると思いますが、個人的には、一般的な編集ユーザーは自分がアップロードしたファイルのみファイルマネージャーから検索でき、編集も自分がアップロードしたファイルのみ、削除は不可、という設定にすることが多いです。
ファイルのアクセス権限をきちんと設定したい場合にきちんと対応できるシステム
一時期、ウェブサイトにアップロードしたPDFのファイル名が類推可能なものだったため、公開前のコンテンツからダウンロードできるようになる予定だったファイルが流出してしまうという事例が話題になりました。
御社は大丈夫? 公開前のはずの重要情報がWebサイトから漏洩、CMSの公開予定でもダメな場合がある? | Web担当者Forum
concrete5は、この記事で分類されている「全アセットアクセス制御型」に相当します。CMSの設定ミスによって見えてしまうという点は、確かに気をつけるべき点でしょうが、個人的にはこれがもっとも確実な方法だと思います。「日時指定デプロイ型」は、サーバーにアップされるまえは確かにサーバー上に存在しないので良いでしょうが、アップされてしまえば結局同じことです。
concrete5では、通常ファイルをアップロードするとインターネットからアクセスできる領域に保存されますが、ファイルのアップロード時間を基準に暗号化した3重のフォルダの中に格納されます。ファイルの正確なアップロード時間は通常アップロードした人にも分かりませんので、ファイルのURLは類推不可能なものです。
ファイルの命名に気を配らなくても(自分で類推の難しいファイル名に変更してからアップロードしなくても)、そもそもアップロードフォルダが類推不可能なものになっていますし、同じフォルダの中に複数のファイルが2つ以上入ることはありませんので、ファイル名の日時を変えてみたところで、そもそもひとつのフォルダにはそのファイルしか入っていないのですから安心です。
この仕組みによって、誰でも気軽にファイルのアクセス権の制御を行えるしくみになっています。いちどファイルのアクセス権限を設定してしまえば、そのファイル専用のダウンロードURLが作られ、ファイルがアップロードされたフォルダ名は隠蔽されます。
それでも、何らかの方法でファイルがアップロードされている位置が流出した場合、直接アクセスされた場合にファイルが見えることは避けられません。企業のウェブサイトの運用ポリシー上、それが許されない場合は、インターネットから物理的にアクセスが不可能な「別のファイルの保存場所」を設定し、そちらにファイルを移動するようにしてください。
ただし、別のファイルの保存場所にファイルを移した場合、アクセス権限を設定していなくても、常にPHPからファイルを配信することになりますので、その分余分な処理が発生します。また、多くの場合でレンタルサーバーではこの方法は使えません。別のファイル保存場所に移すかどうかは、その都度使い分けるようにしてください。
ファイルのアクセス権を設定するとファイルの配信がPHPを経由するようになり、誰がいつファイルをダウンロードしたかのログが残ります。意図しないダウンロードが行われていないか、念のためログもチェックしておきましょう!