公開先が FTP
サーバのときの iBlog と
iblogPatcher 利用方法
iblogPatcher
の公開後のファイル処理は、公開先が書き込み可能でマウントされていることが前提になっている(.Mac
の iDisk
専用というわけではない)。以前「
.Mac 版 iBlog で任意の
WebDAV, Samba, AFP
サーバに公開する」でも
FTP だと Mac OS X
では書き込み可能でマウントできないので
.Mac ライセンスの iBlog では FTP
を介して公開するための正規の方法は示していなかった。そこで、2
レベルに分けて FTP
サーバへ Blog
を公開する方法について述べる。rsync
が使える公開先についても言及しておく。
もちろんここでは裏技は紹介しない。恐らく
iBlog
の隙を突いた公認できないライセンス違反と思われるからだ。それに、たとえ
FTP
機能がある一般ライセンスの
iBlog
を利用していたとしても
FTP
では書き込み可能でマウントできないので
iblogPatcher の publish after
機能が使えない。publish after
機能はプレビュー段階では作成途中である
rss.xml
の操作をする。
【レベル
1】-
無料で頑張る
このレベルは
iBlog
を除いた全てを無料で通すレベル。ここに書いたアイデアと若干異なるが
KHOO
さんも
似たようなアイデアを利用したそうだ。一般ライセンスの
iBlog
を利用している人はこちらの方が使いやすいだろう。
----
仕込み ----
- iBlog でローカルの公開先を作成する。
このとき [ウェブサイト URL] を FTP でアップロード後の URL にするところが味噌。
- Blog 定義ファイル(myblog.txt) の Blog ディレクトリの設定をローカルディレクトリにする
Blog ディレクトリは
%Blog = (
'preview' => プレビューディレクトリ,
'publish' => 公開先,
);
というように定義されているはずだ。この公開先を 1 で設定したローカルのディレクトリにする。$ENV{'HOME'} のような変数を使うときは " " で囲み、使わないときは ' ' で囲む必要がある。例として私の業務日誌の Blog の当該部分をそのまま載せておく。
%Blog = (
'preview' => "$ENV{'HOME'}/Sites/iblog/B835849451",
'publish' => "$ENV{'HOME'}/Sites/at-v8/iblog",
);
- 差分リストアップのために Blog 定義ファイルを細工する。
Blog 定義ファイルの %ACTION の中の publish after に次のような記述を追加しておく。この記述は publish after の処理の中の一番最後にしておく必要がある。
'onFinish' => sub {
......
system('mv', '-f', "$ENV{'HOME'}/.myblog.time", "$ENV{'HOME'}/.myblog.time.old");
system('touch', "$ENV{'HOME'}/.myblog.time");
},
この記述によりホームディレクトリに隠しファイルとして .myblog.time というファイルが publish after によって作成されるようになり、前回の .myblog.time は .myblog.time.old と名前が変えられるようになる。
もし rsync が使える公開先ならばここは次のようにする。
'onFinish' => sub {
......
system(rsync で同期させるためのコマンドライン);
},
以上で仕込みは終わり。この設定では
FTP
が全く出てこない。したがって
iBlog で公開しても iblogPatcher の
publish after をしても手元の Mac OS X
の中だけで完結する。
----
公開手順 ----
rsync
の場合は iblogPatcher の publish after
で自動で rsync
を使って転送されるのでこのセクションは不要で、FTP
の場合のみである。また、もしあなたが差分アップデートができる
FTP
ソフトを持っているのならばそれを使ってローカルのディレクトリから
FTP
サーバにアップロードすればよい。残念ながら無料のそういうツールを
Mac OS X
用に見つけていない。無料で通すためにはここでちょっと手間をかける必要がある。
iBlog
でローカルディレクトリに公開後
iblogPatcher の publish after
を行っておく。初回の場合は全てアップロードなので何も考えずに全てをアップロードすればよい。しかし二回目以降は更新/作成されたファイルだけをアップロードしたい。そこでコマンドライン上で次のようにする。
find ローカルの公開先ディレクトリ -newer ~/.myblog.time.old -print
私の業務日誌の Blog
を例にとると次のようになる。
find ~/Sites/at-v8/iblog -newer ~/.myblog.time.old -print
こうタイプして改行すると、ローカルの公開先ディレクトリにあるファイルやディレクトリの中で、ホームディレクトリの隠しファイル
.myblog.time.old
よりも新しいもの(更新されているものや作成されたもの)が全てリストアップされる。このリストを見ながら
FTP
でアップロードすればよい。
ね、面倒臭いでしょ。私の業務日誌は
rsync
できるサーバに公開しているので面倒ではないのだけれどね。プロバイダーも
rsync
サーバを立てるのが普通ならばいいのだけれどそうでもないのが残念。
【レベル2】-
1,800円 + 消費税('04.1.11 現在)
で楽をする
このレベルでは
Active
mounter
という有料アプリケーションを利用する。このアプリケーションは
KHOO
さんのエントリで見つけた。
----
仕込み ----
レベル 1
の仕込みととても似たアイデアを用いる。
- iBlog でローカルの公開先を作成する。
このローカルの公開先は本当のローカルではなく、Active mounter でマウントした FTP サーバ上のディレクトリを指定するのと、[ウェブサイト URL] を FTP でアップロード後の URL にするところが味噌。
例えば [プロトコル] に [FTP] を選択して、[ホスト名] を ftp.yourserver.com として [ディレクトリ] を空にして [新規マウント] を作成したとすると、iBlog での公開先は
/Volumes/ftp-ftp.yourserver.com
になる。もちろん FTP で接続した直後のディレクトリではなくサブディレクトリに Blog を公開したいのならその後ろに、サブディレクトリを続ける必要がある。iblog ディレクトリの下に公開したいのなら、
/Volumes/ftp-ftp.yourserver.com/iblog
とする。
- Blog 定義ファイル(myblog.txt) の Blog ディレクトリの設定をローカルディレクトリにする
Blog ディレクトリは
%Blog = (
'preview' => プレビューディレクトリ,
'publish' => 公開先,
);
というように定義されているはずだ。この公開先を 1 で設定したローカルのディレクトリにする。$ENV{'HOME'} のような変数を使うときは " " で囲み、使わないときは ' ' で囲む必要がある。1 での例を用いると 'publish' の指定は
/Volumes/ftp-ftp.yourserver.com
あるいは
/Volumes/ftp-ftp.yourserver.com/iblog
となる。
---- 公開手順
----
そして、Active mounter で FTP
サーバをマウントしておいてから
iBlog で公開したり iblogPatcher で
publish after(before も) する。Active mounter で
FTP
サーバをマウントしておく以外は全く通常どおりに使用できる。
Posted: 23:53
|
Comment
|
Trackback
以下、類似エントリです。