←前のエントリ |  ↑↑Blog |  ↑Category |  ↓Comment |  ↓Trackback |  次のエントリ→

CacheUpIt を導入してみました。


OKAMURA さん作成のキャッシュ系のツールです。

CacheUpItとは、外部コンテンツをキャッシュ化しようというスタンスで作成されたツールです。OKAMURAさんのエントリ1エントリ2
外部コンテンツが遅い場合に威力を発揮します。例えば調子の悪いときのPiyoFe・・とかです。

概要説明
CacheUpItは、定期的に指定された外部コンテンツをチェックし、更新されていたらコンテンツを動作マシン上(ローカルマシン上)に保存し、指定されたアップロード先にアップロードしてくれます。

ということで、設定する内容は大きく分類すると
  • 外部コンテンツのURL
  • チェックする間隔
  • キャッシュファイルの保存先(ローカルマシン、アップロード先)
  • アップロード先のURL

となります。また、必要に応じて
  • curlの設定
  • 自動実行のための設定

などを実施します。


ターミナルを使わない方針での導入エントリはkaoru_ariさん書かれています ので、ここではターミナルを使って実施してみます。kaoru_ariさんのエントリ で記述されている注意点は非常に重要です。このエントリを参照して設定しようと思っている方は、kaoru_ariさんのエントリ もご一読することをお勧めします。#ということで同じ注意点は基本的に書いてません。

1. ダウンロードする。

こちらのエントリ にあるリンクからダウンロードします。
適当な場所に置いて解凍します。ここではデスクトップに置いてあるとします。ターミナルを開いて

% cd Desktop
% tar xvzf CacheUpIt-1.1.tar.gz

2. どこかに置く。

解凍してできたフォルダをどこかに置く必要があります。ここでは /Application/Utilities に置きます。

% mv CacheUpIt-1.1 /Application/Utilities

3. キャッシュ対象の外部コンテンツを決める。

どれをキャッシュ対象とするか決める必要があります。
my cheep blog では、
外部コンテンツjavascriptのURL
BlogPeople のリンクリストhttp://www.blogpeople.net/display/usr/0f0d405754514103.js
HaloScan のコメントhttp://www.haloscan.com/load.php?user=mitsumoris
音ログhttp://otolog.jp/b-utf8/kuki

を対象としました。
#PiyoFeedsはPiyoFeeds側でキャッシュするようになっているので対象としませんでした。


4. アップロード先を決める

キャッシュしたファイルをアップロードする場所を決める必要があります。
my cheep blog は iBlog のフォルダ直下に Cache というフォルダを新規に作成して、そこに入れることにしました。

5. チェックする間隔とローカルファイルの保存先を決める

my cheep blog ではなんとなく以下のように決めました。
外部コンテンツチェックする間隔ローカルファイルの保存先
BlogPeople のリンクリスト30分cheepLocal/BlogPeople
HaloScan のコメント5分cheepLocal/HaloScan
音ログ5分cheepLocal/Otolog

6. 設定ファイルを作成する。

これまで決めたことを踏まえて、設定ファイルを作成します。

このファイルは、ホームディレクトリ直下に.CacheUpIt.conf という名前で保存します。私はUTF-8で改行コードLFとしました。これ以外でも大丈夫な組み合わせはあると思いますが、改行コードCRはやめた方が良いようです。

my cheep blog での設定ファイルは以下の通りです(パスワードなど一部隠してます)。

$Conf{cache} = [
    {
        # 名称 - ディレクトリとして有効な名前
        name => 'cheepLocal/BlogPeople',
        # 取得元の URI
        uri      => 'http://www.blogpeople.net/display/usr/0f0d405754514103.js',
        # チェック間隔 - 全体のチェック間隔の何倍か
        interval => 6,  # 30 分
        # アップロード
        upload => {
            # アップロード場所の名称 - uploadPlace のキー
            place => 'cheep',
            # アップロード場所でのファイル名
            fname => 'BPLinkList.js',
        },
    },
    {
        name => 'cheepLocal/HaloScan',
        uri      => 'http://www.haloscan.com/load.php?user=mitsumoris',
        interval => 1,  # 5分
        upload => {
            place => 'cheep',
            fname => 'HaloScan.js',
        },
    },
    {
        name => 'cheepLocal/Otolog',
        uri      => 'http://otolog.jp/b-utf8/kuki',
        interval => 1, # 5 分
        upload => {
            place => 'cheep',
            fname => 'Otolog.js',
        },
    },
];

# アップロード先定義の配列
$Conf{uploadPlace} = {
    cheep => {
        # アップロード先の URI
        uri => 'http://xxxxxxxx/kuki/B1356262698/Cache',
        # ユーザ名
        user => 'kuki', # 不要のときは削除
        # パスワード
        passwd => 'xxxxxx',   # 不要のときは削除、undef だと起動時に入力
    },
};

決めてきた内容と比較しながら設定すればそれほど複雑ではないかと思います。
なお、チェック間隔は5分で1となります。30分としたければ6(=5分x6)とすれば良いことになります。intervalの部分に設定します。


7. curlの設定

ここは利用する環境により不要な作業です。
私の場合、webDAV先がBASIC認証ではなくてDIGEST認証なので、Mac OS Xに付属のcurlだと対応していないようで、うまく機能してくれません。

% /usr/bin/curl --version
curl 7.10.2 (powerpc-apple-darwin7.0) libcurl/7.10.2 OpenSSL/0.9.7b zlib/1.1.4

Pantherに付属のcurlのバージョンは上記の通り、7.10.2です。DIGEST認証をするには、おそらく7.10.6以降が必要です。
私はFink を使ってインストールしました(説明省略)。

curlがデフォルトと違うため、設定の変更が必要となります。/etc/CacheUpIt.confを新規に作成する必要があります。
my cheep blog では、DIGEST認証を使うので--digestを加え、パスを /sw/bin/curl とするため以下のようにしました。

$Conf{command} = {
    download => [
        '/sw/bin/curl',
        '-s',
        '-D', '%header%',
        '-o', '%body%',
        '-z', '%header%',
        '%uri%',
    ],
    upload => {
        noauth => [
            '/sw/bin/curl',
            '-s',
	   '--digest',
            '-o', '%response%',
            '-T', '%body%',
            '%uri%',
        ],
        user => [
            '/sw/bin/curl',
            '-s',
	  '--digest',
            '-o', '%response%',
            '-T', '%body%',
            '-u', '%user%:',
            '%uri%',
        ],
        passwd => [
            '/sw/bin/curl',
            '-s',
	  '--digest',
            '-o', '%response%',
            '-T', '%body%',
            '-u', ':%passwd%',
            '%uri%',
        ],
        userpasswd => [
            '/sw/bin/curl',
            '-s',
	  '--digest',
            '-o', '%response%',
            '-T', '%body%',
            '-u', '%user%:%passwd%',
            '%uri%',
        ],
    },
},

これでうまく動作しました。


8. 自動起動

自動起動させたい場合は設定してください。
kaoru_ariさんのエントリを参考にしてください。へそ曲がりな人は以下の方法でいかがでしょう。StartupItemsを利用します。

CacheUpIt.StartupItems.tgz をダウンロードし、適当な場所に置き、以下のように解凍します。
% tar xvzf CacheUpIt.StartupItems.tgz

解凍したフォルダを/Library/StartupItems/に移動します。
% mv CacheUpIt /Library/StartupItems

上記6にて作成した.CacheUpIt.confを/Library/StartupItems/に移します(下のcpはmvでもよいです。オリジナルを残したければcpとして下さい。)。
% cd
% cp .CacheUpIt.conf /Library/StartUpItems/CacheUpIt

これで起動するごとに CacheUpIt を起動してくれるはずです。
ただし、以下の2点に注意する必要があります。

1) HOMEディレクトリに作成されるはずのディレクトリは、/Library/StartupItems/CacheUpIt/.CacheUpItに作成されることになります。
2) CacheUpItのフォルダが/Applications/Utilities/にある必要があります。
変更したい場合は /Libarary/StartupItems/CacheupIt/CacheUpItにおいて、
CUISERVICE="/Applications/Utilities/CacheUpIt-1.1/CacheUpIt"

の部分を変更してください。

手動で起動したい場合は、
% /Libary/StartupItems/CacheUpIt/CacheUpIt start

停止したい場合は、
% /Libary/StartupItems/CacheUpIt/CacheUpIt stop

再起動したい場合は、
% /Libary/StartupItems/CacheUpIt/CacheUpIt restart

でよいはずです。


9. iBlog側での設定

これまで読み込んでいたJavascriptを置き換える必要があります。
例えば、BlogPeopleのリンクリストであれば、ナビゲーションエディタにおいて、該当箇所を置き換えます。HaloScanであれば、テンプレートにおいて、該当箇所を置き換えます。

( ・∀・)つ〃∩ ヘェーヘェーヘェー">
投稿時間: 2005年01月23日 (日) at 12:19   

←前  |  ↑↑Blog |  ↑Category |  ↑Entry top |  ↑Comment |  次→

ブックオフオンライン

←前  |  ↑↑Blog |  ↑Category |  ↑Entry top |  ↑Comment |  次→