arcanum_jp’s blog

おっさんの日記

awsのs3からフォルダごとコピーする方法

 ヤットデタマンなのでメモ。

 PCのデータとかとりあえずバックアップするのs3はとても便利ですね、ドラッガンドドローーーップ!でアップロード出来ちゃいますから。でも、そのアップロードしたファイルは1ファイル単位でしかs3からコピー出来ないので多いと泣いてしまいます。えぇ、実際途方にくれました。

 そういう時は、AWSCLIというものを使いコマンドライン上でS3からコピーします。

接続ユーザーの作成

 接続ユーザーはIAMというサービスを使って作ります。

 AWSのコンソールからIAMサービスを選択して、「IAM リソース」→「ユーザー」とたどっていき、「新規ユーザーの作成」で接続するユーザーを作ります。

 作成すると、

これは、これらのユーザーセキュリティ認証情報をダウンロードできる最後の機会です。

 なんて脅迫されますが、一人だったらさっさと「ユーザーのセキュリティ認証情報を表示」を押してテキストで保存しておきましょう。ダウンロードするとCSVでもらえるみたいです。



ユーザーへ権限の設定

 ユーザー一覧に作成したユーザーが追加されるので、それをクリックしてポリシーのアタッチを行います。「ポリシーのアタッチ」から「AmazonS3ReadOnlyAccess」をつけてあげます。権限はたくさんあるので"S3"で検索すると楽かもしれません。





AWSCLIのインストール

 次にAWSコマンドラインを打てるようにAWSCLIというのをインストールします。公式ページに簡単なマニュアルがあるのでこちら

AWS CLI のインストール

このセクションでは、Windows 用と、LinuxOS XUNIX オペレーティングシステム用の AWS CLI のインストール方法について説明します。

http://docs.aws.amazon.com/ja_jp/streams/latest/dev/kinesis-tutorial-cli-installation.html

ここからたどっていって英語のページですがこちらからダウンロードします。

Download the appropriate MSI installer.

Download the AWS CLI MSI installer for Windows (64-bit)
Download the AWS CLI MSI installer for Windows (32-bit)
Note
The MSI installer for the AWS CLI does not currently work with Windows Server 2008 (version 6.0.6002). Use pip to install with this version of Windows.

http://docs.aws.amazon.com/cli/latest/userguide/installing.html#install-msi-on-windows

普通にインストールして、コマンドライン上でawsと打って認識されればOKです。






AWSCLIの設定

次にAWSCLIの設定を行います。具体的には先ほど作成したユーザーが、AWS上のファイルとアクセスするための設定です。aws configure と打ち、先ほどダウンロードした認証情報を打ち込んでいきます。キャプチャのDefault region nameというところ、ap-northeast-1というのは東京リージョンの場合です。ほかのリージョンは名前が違うので注意してください。formatはとくに意識しなければそのままエンターで何も入力しなくともよいです。


S3からのダウンロード

 あとはS3からフォルダごとダウンロードします。コマンドライン上から以下の書式で使うことができます。

aws s3 [コマンド名] [コマンドオプション]

例えばS3上のファイル一覧を見るのであれば以下です。Linuxコマンドを思い出せばいいみたいですね。S3上のファイル、フォルダへはs3プロトコルを利用します。

aws s3 ls s3://バケット名


コピーする場合、以下のようになります。最後の--recursiveは再帰的にコピーするためのオプションみたいです。

aws s3 cp s3://mybucketname c:/temp/hoge --recursive