awsでAmazon Linuxにs3cmdをインストールしてコマンドラインでS3を操作する
via
- S3: Amazon Linuxにs3cmdをインストールしてコマンドラインでS3を操作する - aws memo
- s3cmd で ec2からs3へファイルをアップロードしようとしたらハマった - Konboi's Memo
- Amazon S3 編。S3 を s3cmd で操作する方法をご説明 | 使い方・ナレコムAWSクラウド | ナレコムAWSレシピ
コンフィグウィザードを起動
- Access KeyはAWSサイトの「アカウント」→「セキュリティ証明書」
- Secret Key「シークレットアクセスキー」の「表示」リンクをクリックする
s3cmd --configure
Access Key:
Secret Key:
Encryption password:
Path to GPG program [/usr/bin/gpg]:
Use HTTPS protocol [No]:
HTTP Proxy server name:
Test access with supplied credentials? [Y/n]Retry configuration? [Y/n] → n
Save settings? [y/N] → yConfiguration saved to '/home/ec2-user/.s3cfg'
/home/ec2-user/.s3cfg に保存されたようだ
同じコマンドを打てばもう一回設定できる
バケット一覧
s3cmd ls
「The AWS Access Key Id you provided does not exist in our records.」
というエラーが出たらAccess Ke、Secret Key:あたりが違うはず
バケットを作る
バッケト名は全ユーザでユニークなのでかぶったら変える
s3cmd mb s3://hogebacket
バケットの使用量を確認(-Hオプションで見やすい単位に)
s3cmd du s3://hogebacket -H
EC2からS3にフォルダごとアップロード
s3cmd put -r /var/www/html/ s3://hogebacket/html/
- /var/www/htmlフォルダをアップロードする
- s3://hogebacket/htmlフォルダは予め作っておく
S3からEC2にダウンロード
s3cmd get -r s3://hogebacket/html/ /var/www/html_hoge/
- /var/www/html_hoge/は予め作っておく 権限はとりあえず777で試す
EC2→S3への同期
アップロードと違うのは、完全にファイル、フォルダの情報を”同期”すること
s3cmd sync /var/www/html/ s3://hogebacket/html/