静的ウェブサイトをAmazon S3に再デプロイすることを考えています。展開を自動化する必要があるため、このようなタスクのAPIを探していました。私はさまざまなオプションについて少し混乱しています。
質問:s3cmd、Python library botoとAWS CLIの違いは何ですか?
s3cmd と AWS CLI は両方ともコマンドラインツールです。シェルスクリプト(bashなど)を使用して展開のスクリプトを作成する場合に適しています。
AWS CLIは、「s3」コマンドを使用して単純なファイルコピー機能を提供します。これは、静的ウェブサイトをS3バケットにデプロイするのに十分なはずです。また、Amazon Linuxに事前にインストールされているなど、作業を行っていた場所にいくつかの小さな利点があります(また、 pip
で簡単にインストール可能 )。
ローカルディレクトリをS3バケットに同期するのに適している可能性がある1つのAWS CLIコマンド:
$ aws s3 sync . s3://mybucket
このコマンドの完全なドキュメント: http://docs.aws.Amazon.com/cli/latest/reference/s3/sync.html
編集:@ simon-buchanがコメントで述べたように、aws s3api
コマンドは完全なS3 APIへのアクセスを提供しますが、そのインターフェースはより「生」です。
s3cmdは、AWS CLIがサポートするすべてをサポートし、さらにいくつかの拡張機能を追加しますが、目的に応じて必要になるかどうかはわかりません。ここですべてのコマンドを見ることができます: http://s3tools.org/usage
S3cmdのインストールは、どのディストリビューションのメインリポジトリでもパッケージのようには見えないため、もう少し複雑になります。
boto はPythonライブラリであり、実際には公式のAWS Python SDKです。 Pythonで記述されているAWS CLIは、実際にはbotoライブラリの一部を使用します( botocore )。 Pythonで展開スクリプトを記述している場合にのみ適しています。他の一般的な言語(Java、PHPなど)用の公式SDKがあります: http://aws.Amazon.com/tools/
S3へのアクセスの最も生の形式は、AWSのREST APIを介したものです。他のすべては、ある時点でそれに基づいて構築されます。冒険好きなら、S3 REST APIドキュメントをご覧ください。 http://docs.aws.Amazon.com/AmazonS3/latest/API/APIRest.html