これらの人は解決策を見つけているようです:(http://thinkglobal.co/resources/moving-the-magento-media-directory-to-s3/)
2つの可能なアプローチがあります。1つは、Magentoにすべてのメディアアセットを作成時にS3にプッシュさせる方法、もう1つはメディアディレクトリをS3バケットにマウントし、Magentoにローカルディスクへの書き込みだと思わせる方法です。後者を選択しました。
最終的に、s3fsというツールを使用しました。このツールは、fuseと呼ばれるより広範な技術を使用しています。かなり簡単な構成(後述)を使用すると、s3fsを起動して実行できます。AWSまたは他のPAASプロバイダーを使用している場合、S3バケット名またはAPIアクセス認証情報をハードコードしないように注意してください。
次の変数を特定の構成の値に置き換えてください。
- {{S3_BUCKET}}(S3バケットの名前)
- {{API_PUBLIC_ACCESS_KEY}}(AWSが提供)
- {{API_SECRET_ACCESS_KEY}}(AWSが提供)
- {{UID}}(nginx / apacheユーザーのユーザーID)
- {{GID}}(nginx / apacheユーザーのグループID)
- {{MOUNTED_DIRECTORY}}(magentoメディアディレクトリへのパス)
セットアップは次のとおりです。
yum install -y gcc libstdc++-devel gcc-c++ curl curl* curl-devel libxml2 libxml2* libxml2-devel openssl-devel mailcap
cd /usr/local/src
wget http://downloads.sourceforge.net/project/fuse/fuse-2.X/2.9.3/fuse-2.9.3.tar.gz
tar -xzf fuse-2.9.3.tar.gz
rm -f fuse-2.9.3.tar.gz
mv fuse-2.9.3 fuse
cd fuse/
./configure –prefix=/usr
make
make install
export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/lib64/pkgconfig/
ldconfig
modprobe fuse
pkg-config –modversion fuse
wget http://s3fs.googlecode.com/files/s3fs-1.74.tar.gz
tar -xzvf s3fs-1.74.tar.gz
rm -f s3fs-1.74.tar.gz
mv s3fs-1.74 s3fs
cd s3fs
./configure –prefix=/usr
make
make install
echo “{{S3_BUCKET}}:{{API_PUBLIC_ACCESS_KEY}}:{{API_SECRET_ACCESS_KEY}}” > ~/.passwd-s3fs
chmod 600 ~/.passwd-s3fs
echo “user_allow_other” > /etc/fuse.conf
echo “s3fs#{{S3_BUCKET}} {{MOUNTED_DIRECTORY}} fuse use_cache=/tmp,allow_other,uid={{UID}},gid={{GID}} 0 0″ >> /etc/fstab
s3fs -o allow_other -o uid={{UID}} -o gid={{GID}} -ouse_cache=/tmp {{S3_BUCKET}} {{MOUNTED_DIRECTORY}}