50

静的ウェブサイトを Amazon S3 に再デプロイすることを考えています。展開を自動化する必要があるため、そのようなタスク用の API を探していました。さまざまなオプションについて少し混乱しています。

質問: s3cmd、Python ライブラリ boto、AWS CLI の違いは何ですか?

4

1 に答える 1

49

s3cmdAWS CLIはどちらもコマンドライン ツールです。シェル スクリプト (bash など) を使用して展開のスクリプトを作成する場合に適しています。

AWS CLI は、「s3」コマンドを介して簡単なファイル コピー機能を提供します。これは、静的なウェブサイトを S3 バケットにデプロイするのに十分なはずです。また、Amazon Linux から作業していた場合は、Amazon Linux にプリインストールされているなど、いくつかの小さな利点もあります (また、 から簡単にインストールできますpip)。

ローカル ディレクトリを S3 バケットに同期するのに適切な AWS CLI コマンドの 1 つ:

$ 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

于 2014-10-16T04:18:24.240 に答える