映像制作 eラーニングのことならビズバレー

eランチーム

プログレッシブダウンロードの動画をキャッシュさせない方法

前回、プログレッシブダウンロードの動画のキャッシュ状況について調べてみましたが、OS・ブラウザにより違いがあることが分かりました。今回は、Webサーバー(Apache)の設定により、クライアントのハードディスクにキャッシュを残さないようにしてみましょう。

まず、Apache モジュールとしてmod_headersを利用します。これが今回の肝で、HTTPのリクエストヘッダを制御してキャッシュを残さないよう設定を行います。

OSはDebian7 Linuxで話を進めます。
mod_headers が既に有効に動作しているか確認をしてみます。
sudo apachectl -M で動作しているモジュールの一覧を表示します。

taguchi@debian01:~$ sudo apachectl -M
Loaded Modules:
core_module (static)
log_config_module (static)
logio_module (static)
version_module (static)
mpm_prefork_module (static)
http_module (static)
so_module (static)
alias_module (shared)
auth_basic_module (shared)
authn_file_module (shared)
authz_default_module (shared)
authz_groupfile_module (shared)
authz_host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
cgi_module (shared)
deflate_module (shared)
dir_module (shared)
env_module (shared)
mime_module (shared)
negotiation_module (shared)
php5_module (shared)
reqtimeout_module (shared)
setenvif_module (shared)
status_module (shared)
Syntax OK
taguchi@debian01:~$

※(static)静的モジュール (shared)動的モジュール

動いてませんね、モジュール自体が入っているかどうか /etc/apache2/mods-available/ の中を確認してみます。そうすると、 headers.load がありますので、存在はしていることが分かります。これを有効にします。ちなみに、モジュールの本体は、/usr/lib/apache2/modules/ にあります。

Debian のApacheの場合、mods-available のディレクトリにモジュールが定義され、それを動作させる・させないといったのオン・オフのスイッチが mods-enabled ディレクトリになります。

headers を有効にして、Apacheを再起動します。
sudo a2enmod headers

taguchi@debian01:/etc/apache2/mods-enabled$ sudo a2enmod headers
[sudo] password for taguchi:
Enabling module headers.
To activate the new configuration, you need to run:
service apache2 restart
taguchi@debian01:/etc/apache2/mods-enabled$ sudo /etc/init.d/apache2 restart
[ ok ] Restarting web server: apache2 … waiting .
taguchi@debian01:/etc/apache2/mods-enabled$

sudo apachectl -M でモジュールが入ったかどうか確認してみてください。つぎに、
/etc/apache2/sites-available ファイルの<VirtualHost *:80>の中に、下記コードを追加します。今回はf4vファイルを対象にします。複数書くときは.(f4v|flv)のようにします。拡張子で判別しているので、txtファイルなどもいけますね。

<Files ~ “\.(f4v)$”>
FileEtag None
RequestHeader unset If-Modified-Since
Header set Cache-Control no-store
</Files>

Apacheを再起動して、期待通りに動作するか確認をしてみましょう。

通常のキャッシュありのプログレッシブダウンロード

ヘッダー操作によるキャッシュなしのプログレッシブダウンロード

このように、キャッシュファイルを無効化することで、ファイルコピーを防ぐことができます。

【正社員募集のお知らせ】

当社では、映像制作の経験がある方を広く募集しています。自らの発想力とコミュニケーション力を映像制作の現場で発揮したい熱意ある方からのご応募をお待ちしております。

詳しくは【人材募集】のページをご覧ください。


※スマートホンでご覧いただいている方は、PCページのトップにリンクがございます。そちらからご応募お願い致します。

ページトップ