WindowsでS3Syncを使う方法
S3とローカルのフォルダを同期してくれる便利なオープンソースの「S3Sync」ですが
何かと、Windowsで使うとなるとややこしいことがあります。
Linux系の情報はネットによくありますが、Windowsとなるとあまり無いので、
インストールの方法をこの機会にまとめてみます。
【インストール手順】
まず何と言ってもRubyが必要です。
Windowsのインストーラーがありますので、これは特に何も苦労すること無くインストールできるでしょう。
次に必要なモジュール類のインストールです。SSL通信をさせるためにはOpenSSL、そして、文字コード変換用のライブラリであるiconv.dllを入れましょう。
それぞれ、OpenSSLはインストーラーがありますので、こちらも簡単です。
iconv.dllはこちらからダウンロードし解凍後、iconv.dllを「C:/WINDOWS/system32」などに入れておきましょう。
そして、S3Sync本体をダウンロード後、任意の場所に解凍します。
【各種設定】
S3Syncを使うには各種設定が必要です。まずは、S3Syncの設定ファイルである「s3config.yml」を以下のように編集します。
aws_access_key_id:(AWSのアクセスキー)
aws_secret_access_key:(AWSのシークレットキー)
AWS_CALLING_FORMAT: SUBDOMAIN
環境変数に以下を設定します。
set S3CONF=c:\s3sync <-s3config.ymlがあるパス
set S3SYNC_NATIVE_CHARSET=CP932 <ーWindowsのファイル名の日本語はShift_JISだがCP932と指定しないと囲み数字等の機種依存文字などが文字化けします。
S3SYNC_NATIVE_CHARSETなどは、s3config.ymlに書いてもよさそうに思いますが、どういうわけかWindowsでは環境パスで指定しないと上手く動きません。
以上で基本設定は完了です。
次にSSLを使う場合ですが、これがWindows環境ではやや難しいです。
Linux環境などでは、SSLのcertsファイルをダウンロードし、そのディレクトリをs3config.ymlに記載すれば良いのですが、Windowsでは上手く動きません。これはいろいろ調べましたが原因は不明です。
そこで荒業ですが、certsファイルの検証をやめ、ワーニングが出ないようにします。
S3_s3sync_mod.rb の52行目を「OpenSSL::SSL::VERIFY_NONE」とします。
# http.verify_mode=@verify_mode
http.verify_mode=OpenSSL::SSL::VERIFY_NONE
これでSSLモードで動かしてもワーニングは吐かれません。
以上であとは、S3syncを動かすだけです。