WordPressの画像をAmazon S3へ

WordPressの画像をAmazonS3に置いて利用する。

これがうまくいけば Amazon CloudFrontにも対応出来そうだし。

WordPressの設定変更
設定 → その他の設定 → 「ファイルへの完全な URL パス」
そのファイルにAmazonS3のURLを埋め込みましょう。
私の場合はhttp://*****.s3.amazonaws.com/images/uploads

もちろんAmazonS3に「images/uploads」を先に作っておいて、Public Readにしておいてください。

サーバとS3との同期にs3sync.rbを利用します。
スクリプトは
s3sync.rb -rp 同期するディレクトリ バケット名:images/uploads
です。

どうやって自動で同期を取るかですね^^;;
私は下記のようなスクリプトをcronで定期的に回して同期をとっています。
他のアイディア募集

#!/bin/sh
YEAR=`/bin/date +%Y`
MONTH=`/bin/date +%m`
IMAGE_DIR=/usr/home/www/htdocs/wordpress/wp-content/uploads/${YEAR}/${MONTH}/
FIND=/usr/bin/find
S3SYNC=/usr/home/asuma/s3sync/s3sync.rb
S3_DIR=*********:images/uploads/${YEAR}/${MONTH}

$FIND $IMAGE_DIR -mmin -8 -print -exec $S3SYNC -rp $IMAGE_DIR $S3_DIR ;