2013年9月14日土曜日

s3cmdをインストールする方法

P.S 20150202
--configure時の入力の詳細と1.5.0を試して動作しなかった旨を追記しました

■環境
CentOS 5.9
Python 2.4
s3cmd 1.5.0-alpha1

■インストール
cd /var/tmp
wget http://sourceforge.net/projects/s3tools/files/s3cmd/1.5.0-alpha1/s3cmd-1.5.0-alpha1.tar.gz
tar zxvf s3cmd-1.5.0-alpha1.tar.gz
cd s3cmd-1.5.0-alpha1
python setup.py install

s3cmd --configure
AccessKeyとSecretKeyはマネージメントコンソールからあらかじめ取得しておきます
それ以外にもプロキシやgpgコマンドへのパス、接続テストができますが基本は何も設定しなくて大丈夫です

Test access with supplied credentials?
の回答には「n」を指定して
Save settings?
の回答には「y」を指定すればOKです

Test access with supplied credentials? は接続テストをしていてここで失敗すると.s3cfgという設定ファイルが作成されないのでテストはスルーします
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 [xxxxxxxxxxxxxxxx]:
Secret Key [xxxxxxxxxxxxxxxx]:

Encryption password is used to protect your files from reading
by unauthorized persons while in transfer to S3
Encryption password:
Path to GPG program [/usr/bin/gpg]:

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]: No

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:

New settings:
  Access Key: xxxxxxxxxxxxxxxx
  Secret Key: xxxxxxxxxxxxxxxx
  Encryption password:
  Path to GPG program: /usr/bin/gpg
  Use HTTPS protocol: False
  HTTP Proxy server name:
  HTTP Proxy server port: 0

Test access with supplied credentials? [Y/n] n

Save settings? [y/N] y
Configuration saved to '/root/.s3cfg'

vim /root/.s3cfg
が存在することを確認する
また、ニフティクラウドで使用する場合にはURLのパラメータの部分を以下のように変更する
host_base = ncss.nifty.com
host_bucket = %(bucket)s.ncss.nifty.com

■動作確認
s3cmd ls
バケットの一覧が表示されることを確認する

s3cmd ls s3://[bucket_name]
指定したバケット配下のオブジェクト一覧が表示される

s3cmd du s3://[bucket_name]
指定したバケットのデータ容量を取得することができる(単位はバイト)

あとは--helpで実際にできるコマンドを確認できます

■注意事項
pythonは2.6以上じゃないとうまくインストールできない可能性があります(2.4でinstallしたらインストール時にエラーメッセージが出ました、がインストール自体は成功していました))
yumリポジトリも用意されているのでyumインストールもできますが、バージョンが1.0.0と古いバージョンがインストールされます
設定ファイルの.s3cfgは実行しているユーザのホームディレクトリ配下を見に行くのroot以外でもs3cfgを実行したい場合には、該当のユーザにsuして再度--configureする必要があります
もしくはrootで作成した.s3cfgファイルを他のユーザのホームディレクトリ配下にコピーして権限を変更しても大丈夫です

1.5.0という正式版がリリースされていたのでこれを使ってみたらうまく動きませんでした
ERROR: S3 error: The provided security credentials are not valid.
というエラーが出たうまく動作しません
ニフティクラウドに対して実施していたのでS3に対しては普通に動作すると思います

■参考サイト

1 件のコメント:

  1. > 1.5.0という正式版がリリースされていたのでこれを使ってみたらうまく動きませんでした
    > ERROR: S3 error: The provided security credentials are not valid.
    > というエラーが出たうまく動作しません

    下記で 1.5 系でも動くようになるみたいです。

    $ vi ~/.s3cfg
    ## s3cmd 1.5 系はデフォルトで signature v4 を使うようなので下記を追加
    signature_v2 = True

    返信削除