web-dev-qa-db-fra.com

Différence entre s3cmd, boto et AWS CLI

Je pense à redéployer mon site Web statique sur Amazon S3. Je dois automatiser le déploiement, donc je cherchais une API pour de telles tâches. Je suis un peu confus sur les différentes options.

Question: Quelle est la différence entre s3cmd, le Python bibliothèque boto et l'AWS CLI?

38
user1781186

s3cmd et AWS CLI sont tous deux des outils de ligne de commande. Ils sont bien adaptés si vous souhaitez créer un script pour votre déploiement via des scripts Shell (par exemple bash).

L'AWS CLI vous offre des capacités de copie de fichiers simples via la commande "s3", ce qui devrait être suffisant pour déployer un site Web statique vers un compartiment S3. Il présente également quelques petits avantages tels que la pré-installation sur Amazon Linux, si c'est là que vous travailliez (c'est aussi facilement installable via pip ).

Une commande AWS CLI qui peut être appropriée pour synchroniser un répertoire local avec un compartiment S3:

$ aws s3 sync . s3://mybucket

Documentation complète sur cette commande: http://docs.aws.Amazon.com/cli/latest/reference/s3/sync.html

Edit: Comme mentionné par @ simon-buchan dans un commentaire, le aws s3api la commande vous donne accès à l'API S3 complète, mais son interface est plus "brute".

s3cmd prend en charge tout ce que l'AWS CLI fait, et ajoute des fonctionnalités plus étendues, même si je ne suis pas sûr que vous en auriez besoin pour vos besoins. Vous pouvez voir toutes ses commandes ici: http://s3tools.org/usage

L'installation de s3cmd peut être un peu plus compliquée car il ne semble pas y avoir de packages pour cela dans les dépôts principaux de distributions.

boto est une bibliothèque Python, et en fait le SDK AWS Python SDK. L'AWS CLI, également en Python, utilise en fait une partie de la bibliothèque boto ( botocore ). Cela ne conviendrait que si vous écriviez vos scripts de déploiement en Python. Il existe des SDK officiels pour d'autres langages populaires (Java, PHP, etc.) si vous préférez: http://aws.Amazon.com/tools/

La forme la plus brute d'accès à S3 est via l'API REST d'AWS. Tout le reste est construit dessus à un moment donné. Si vous vous sentez aventureux, voici le S3 REST Documentation API: http://docs.aws.Amazon.com/AmazonS3/latest/API/APIRest.html

40
mfisherca