前回、CentOS6.2にlsyncdをインストールの記事を紹介したので、次はS3との同期を試してみます。
下記のように、/etc/lsyncd.confを設定します。
settings = { logfile = "/var/log/lsyncd.log", statusFile = "/var/log/lsyncd.status", nodaemon = true, } s3sync = { maxProcesses = 1, onStartup = "s3cmd -c /root/.s3cfg -P -r --delete-removed sync ^source ^target/", onCreate = "s3cmd -c /root/.s3cfg -P put ^source^pathname ^target^pathname", onModify = "s3cmd -c /root/.s3cfg -P put ^source^pathname ^target^pathname", onDelete = "s3cmd -c /root/.s3cfg del ^target^pathname", onMove = "s3cmd -c /root/.s3cfg mv ^target^o.pathname ^target^d.pathname", } sync{ s3sync, source = "/tmp/src", target = "s3://www.suz-lab.com/tmp", }
また、s3cmdのインストールは下記のように行なっておきます。
# yum -y install s3cmd
lsyncd再起動後、対象のディレクトリ(/tmp/src)にファイルを追加・変更・削除を行うと、同様の操作が対象のS3(s3://www.suz-lab.com/tmp)にも反映されていることがわかります。
尚、対象ファイルの制限やS3側のアクセスコントロールなどは、s3cmdの設定となります。
そして、これをFTP等と連携すれば「Write Proxyパターン」になりそうです。