2011年7月20日水曜日

S3ってなんじゃ?(s3cmd編)

今回はS3にコマンドラインからアクセスするCLIツールs3cmdを使用してみます。

ここから最新のs3cmdをダウンロードします。

$ wget http://downloads.sourceforge.net/project/s3tools/s3cmd/1.0.1/s3cmd-1.0.1.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fs3tools%2Ffiles%2Fs3cmd%2F1.0.1%2F&ts=1311152465&use_mirror=jaist -o s3cmd-1.0.1.tar.gz

展開してインストールします。
$ tar -xzvf s3cmd-1.0.1.tar.gz
$ cd s3cmd-1.0.1
# python setup.py install

接続の設定を行います。
$ s3cmd --configure

Enter new values or accept defaults in brackets with Enter.
Refer to user manual for detailed description of all options.

Access key and Secret key are your identifiers for Amazon S3
Access Key: アクセスキーを入力
Secret Key: シークレットキーを入力

Encryption password is used to protect your files from reading
by unauthorized persons while in transfer to S3
Encryption password: 転送時の暗号化のパスワードを入力(ここではなにもいれずにEnter)
Path to GPG program: GPG暗号化プログラムへのパスを入力(ここではなにもいれずにEnter)

When using secure HTTPS protocol all communication with Amazon S3
servers is protected from 3rd party eavesdropping. This method is
slower than plain HTTP and can't be used if you're behind a proxy
Use HTTPS protocol [No]:   転送にHTTPSを使用する場合はYes(ここではなにもいれずにEnter)

On some networks all internet access must go through a HTTP proxy.
Try setting it here if you can't conect to S3 directly
HTTP Proxy server name: プロキシサーバーを利用する場合はサーバー名(ここではなにもいれずにEnter)

New settings:
Access Key: xxxxxxxxxxxxxxxxxxx
Secret Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Encryption password: 
Path to GPG program: None
Use HTTPS protocol: False
HTTP Proxy server name: 
HTTP Proxy server port: 0

Test access with supplied credentials? [Y/n] 接続テストを行う場合はY
Please wait...
Success. Your access key and secret key worked fine :-) ←接続成功

Now verifying that encryption works...
Not configured. Never mind.

Save settings? [y/N] 設定を保存するにはy
Configuration saved to '/home/memorycraft/.s3cfg'


バケットの内容を確認します。
$ s3cmd ls s3://mount-test/
2011-07-18 17:08  22209951   s3://mount-test/Stardust.m4v

バケットにファイルを転送します。
$ echo hello > hello.txt
$ s3cmd put -P hello.txt s3://mount-test/hello.txt
hello.txt -> s3://mount-test/hello.txt  [1 of 1]
6 of 6   100% in    0s    21.11 B/s  done
Public URL of the object is: http://mount-test.s3.amazonaws.com/hello.txt

このようにとても簡単に使用できます。
またコマンドラインなので、アプリケーションやバッチなどにすぐに利用できて大変便利です。