前回、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パターン」になりそうです。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら