インストールを終えてから一つのオブジェクトを同期させるまでの最短手順を示します。curl コマンドは /usr/bin/ にあることが前提です。
ここでは例として、このサイトのコメントの RSS のオリジナルに変換をかけた上でこのサイトにアップロードするケースを取り上げます。HaloScan の設定で文字コードを UTF-8 にしているものとします。この例は実際に行っています。
このドキュメントで示す手順は curl コマンドが /usr/bin/ にあることを前提としています。なぜならば CacheUpIt のデフォルトでは curl コマンドのフルパスを /usr/bin/curl としているからです。お使いのシステムで curl コマンドのフルパスが /usr/bin/curl であるかどうかを確認するには次のようにします。
$ which curl
ここに curl コマンドのフルパスが出力されます
もしこれの出力が /usr/bin/curl でないときはシステムレベルの設定ファイルを作成する必要があります。システムレベルの設定ファイルについてのドキュメントは現時点では作成していません。作成したらこの部分を書き換えハイパーリンクを付けます。
設定を始める前に次のことを確認しておいてください。
同期させるオリジナルのオブジェクトの URL です。
例えば http://www.haloscan.com/members/rss.php?user=cacheupit です。
同期させる複製側のオブジェクトを置く場所の URL です。最後に / は要りません。
例えば http://idisk.mac.com/yuji_okamura/Sites/DotMac/CacheUpIt です。
同期させる複製側のオブジェクトを置く場所にアクセスするためのユーザ名です。
例えば yuji_okamura です。
同期させる複製側のオブジェクトを置く場所にアクセスするためのパスワードです。
これは秘密ですが、仮に secret としておきます。
設定ファイルを記述する上で次のことを決めておいてください。
これはログの出力を単純にするために付ける名前です。ログの出力に使われるだけでなく同期に関する情報を保存する場所のディレクトリ名の一部としてもしようされます。ですからお使いのシステムでディレクトリの相対パス名として使用できる文字列でなければなりません。相対パス名ですから / を使って階層的にすることができます。
例えば HaloScan/CacheUpIt/Comments です。
同期先のディレクトリを表す名前です。同じディレクトリに複数のアップロードをするときに、個別にその URL やユーザ名、パスワードを設定するのは煩雑です。ですから CacheUpIt の設定ファイルではこれらの情報をひとまとめにして記述します。そのまとまりに付ける名前です。
例えば CacheUpIt です。
同期先におけるファイル名です。同期元のファイル名をそのまましようできない場合があるので同期先でのファイル名を与える必要があります。
例えば haloscan.xml です。
同期する間隔です。デフォルトでは 5 分単位で決めます。
例えば 3 です。これは 5 × 3 = 15 で、15 分間隔となります。
ファイル ~/.CacheUpIt.conf に各内容は一般には次のようになります。
$Conf{cache} = [
{
name => '同期項目名',
uri => '同期元のオブジェクトの URL',
interval => 同期間隔,
upload => {
place => '同期先の名前',
fname => '同期先でのファイル名',
},
},
];
$Conf{uploadPlace} = {
同期先の名前 => {
uri => '同期先のフォルダの URL',
user => '同期先のユーザ名',
passwd => '同期先のパスワード',
},
};これに準備で示した例を適用すると次のようになります。ただし、現時点では HaloScan のバグで RSS 中のマルチバイト文字が途中で切られてしまっています。これを補正するオプション設定も加えます。
$Conf{cache} = [
{
name => 'HaloScan/CacheUpIt/Comments',
uri => 'http://www.haloscan.com/members/rss.php?user=cacheupit',
interval => 3,
upload => {
place => 'CacheUpIt',
fname => 'haloscan.xml',
},
operation => sub {
my ($ifh, $ofh) = @_;
while (my $line = <$ifh>) {
if ($line =~ m/\.\.\.<\/description>/) {
$line =~ s/[\xC0-\xDF]\.\.\.<\/description>/...<\/description>/
or
$line =~ s/[\xE0-\xEF][\x80-\xBF]\.\.\.<\/description>/...<\/description>/
or
$line =~ s/[\xE0-\xEF]\.\.\.<\/description>/...<\/description>/;
}
print $ofh $line;
}
1;
},
},
];
$Conf{uploadPlace} = {
CacheUpIt => {
uri => 'http://idisk.mac.com/yuji_okamura/Sites/DotMac/CacheUpIt',
user => 'yuji_okamura',
passwd => 'secret',
},
};このとおり、設定ファイルにはパスワードが含まれます。ですからたとえ一人で使うシステムであったとしてもファイルのパーミッションには気を使いましょう。次のようにして自分以外は参照できないようにしておきます。
chmod 0600 ~/.CacheUpIt.conf
設定ファイル ~/.CacheUpIt.conf はお使いの Mac のローカルディスクの「ホーム」に置かれる隠しファイルです。隠しファイルなので通常はエディタから command-O でファイルダイアログを開いても選択することができません。Terminal 上のエディタ vim で編集すればよいのですが、vim は GUI を備えたエディタの操作とは全く異なる操作系です。ですから vim の操作方法を覚えて使用するのはかなり苦痛でしょう。そこで Mac OS X ユーザ向けに標準のエディタである テキストエディット で ~/.CacheUpIt.conf を編集する方法を提示します。ここで操作を示すために使用したテキストエディットのバージョンは 1.4 で Mac OS X のバージョンは 10.4.2 です。
~/.CacheUpIt.conf を新たに作成するときは次の手順で行います。
テキストエディットが起動し「名称未設定」とウィンドウタイトルが付いた編集画面が表示されます。
編集画面のツールバーが消えてウィンドウタイトルが「名称未設定.txt」になります。
「設定ファイルの作成」で示した内容を自分用に変えて記述します。
ファイル保存ダイアログが表示されます。
ファイル保存ダイアログで次のようにしてください。
ファイル名の先頭が "." なので警告のダイアログが表示されます。
これで ~/.CacheUpIt.conf が作成されました。
既に作成されている ~/.CacheUpIt.conf を開く場合にはテキストエディットの「最近使った項目を開く」を使用するのが楽ですが、やがてはここから押し出されて使えなくなります。そこで次のようにします。
テキストエディットの環境設定で [開く/保存] を選択し、その中の [標準テキストファイルのエンコーディング] にある [ファイルを開くとき] と [ファイルを保存するとき] の両方を「日本語 (EUC)」にしておきます。
残念ながら ~/.CacheUpIt.conf を開くために Terminal を使用します。手順は次のとおりです。
一つターミナルの画面が開きます。以後、その画面上での操作です。
open -a TextEdit ~/.CacheUpIt.conf
テキストエディットが起動し ~/.CacheUpIt.conf の編集画面が開きます。
CacheUpIt を実行させるには次のようにします。
$ CacheUpIt &
この後、そのシェルを終了してください。