httpaws-一个用于aws服务的类似curl的cli工具。

httpaws的Python项目详细描述


http aws:用于aws服务的命令行http工具

http aws是aws服务的命令行http客户端。它的目标是使cli与aws web服务交互为 尽可能人性化。它提供了一个简单的http aws命令,允许向aws发送http请求 服务使用简单自然的语法,并显示彩色输出。httpaws可用于测试、调试, 并且通常通过http请求直接与aws服务交互。

http aws直接使用请求对aws服务端点进行http调用 aws请求验证模块。

这是一个低级命令行工具,供开发人员使用,以便他们可以轻松地直接进行http调用 AWS服务。它是一个有效的命令行编程替代品,用于使用图形工具,如 邮递员,其灵感来源于诸如httpie之类的工具,但其特定于 AWS服务。

最新版本

主要功能

  • 富有表现力和直观的语法
  • 格式化和彩色终端输出
  • 内置XML支持
  • python 2.7和3.x支持
  • Linux、MacOS和Windows支持

安装

一种通用的安装方法(适用于Windows、Mac OS X、Linux…, 并始终提供最新版本)是使用pip

# Make sure we have an up-to-date version of pip and setuptools:
$ pip install --upgrade pip setuptools

$ pip install --upgrade httpaws

(如果由于某种原因安装失败,您可以尝试将easy_install httpaws作为回退。)

python版本

尽管也支持Python2.7,但强烈建议 尽可能根据最新的python 3.x安装httpaws。那将 确保一些较新的http功能,例如 sni(服务器名称指示),开箱即用。 python 3是从0.9.4版开始的自制安装的默认版本。

不稳定版本

您也可以直接从 github上的master分支。这是一项未来稳定的工作 释放后,体验可能不会那么顺利。

$ pip install -U https://github.com/http-aws/http-aws/archive/master.tar.gz

用法

你好,世界:

$ httpaws -s ec2 DescribeVpcs

概要:

$ httpaws [flags] <API>

另请参见httpaws-h以获取详细帮助:

$ httpaws -h
usage: httpaws [-h][-r REGION][-s SERVICE][-e ENDPOINT][-c CREDS][-v VERSION][-p][-w]
               api

httpaws v0.0.2: A CLI HTTP client for AWS services with syntax highlighting

positional arguments:
  api                   name of the API to call - e.g. "DescribeVpcs"

optional arguments:
  -h, --help            show this help message and exit
  -r REGION, --region REGION
                        AWS region. Overrides config/env - e.g. us-east-1
  -s SERVICE, --service SERVICE
                        AWS service - e.g. ec2, s3, etc.
  -e ENDPOINT, --endpoint ENDPOINT
                        override command's default URL with the given URL -
                        e.g. ec2.us-east-1.amazonaws.com
  -c CREDS, --creds CREDS
                        override AWS Access Key Id and AWS Secret Access Key -
                        i.e. <Access_Key>:<Secret_Key>
  -v VERSION, --version VERSION
                        API version to use for the service
  -p, --paginate        paginate long output
  -w, --wrap            wrap long lines in paginated output (instead of chop)

See the AWS Documentation for API references for each service:
https://docs.aws.amazon.com

认证

当前支持的身份验证方案由 aws请求验证python模块。这两种模式是自动的 和手动。有一个标志控制身份验证:

<表><广告>标志说明 < /广告><正文>-信用证传递一个<;aws_access_key_id>;:<;aws_secret_access_key>;对作为参数

自动验证

如果未提供-c标志,则httpaws将尝试使用 botocore

$ httpaws DescribeVpcs

手动验证

$ http -c <Access_Key>:<Secret_Key> DescribeVpcs

http重定向

不遵循http重定向,只显示第一个响应。

输出选项

此时,httpaws只输出最终响应和整个响应 打印消息(页眉和正文)。

终端输出

httpaws在默认情况下会做一些事情,以便终端输出 易于阅读。

颜色和格式

语法突出显示应用于http头体 感觉)

此外,还应用以下格式:

  • XML数据缩进,Unicode转义转换为它们表示的字符。

重定向输出

默认情况下,httpaws将所有输出发送到stdout

原因是让httpaws输出到其他程序时不需要额外的标志。大多数时候,只有生的 当输出被重定向时,响应体会引起注意。

强制着色和格式化,并在中同时显示请求和响应 更少寻呼机:

$ httpaws -p DescribeVpcs

-p标志告诉httpaws将输出管道设置为less并解释包含的颜色转义序列 httpaws的输出。

管道输出

您还可以将响应正文重定向到另一个程序:

$ httpaws -s s3 List |  grep "MagnumOpus.txt"

回答

响应将同步下载并在下载完成时打印,这便于格式化和 为中等大小的响应着色。但是,如果你想下载大文件而不占用太多内存,这不是 您正在寻找的工具。

会话

此时,httpaws发出的每个请求都完全独立于同一主机和httpaws以前的任何请求 不支持持续会话。

配置

httpaws使用的配置文件与aws cli使用的配置文件相同。

配置文件位置

配置文件的默认位置是~/.aws/config~/.aws/credentials

可配置选项

默认的aws区域是从config文件读取的,而默认的aws访问和密钥是从 凭证文件。

最佳实践

当一个人正在读取这个输出时,对长输出分页的-p选项非常好,但是 在非交互调用期间通常不需要。你很可能不想使用 从示例中调用httpaws以形成cron作业时,请使用-p选项。另外,如果您想要重定向或 通过管道传输httpaws的输出,还应避免使用-p标志。

用户支持

请使用以下支持渠道:

相关项目

依赖关系

在幕后,httpaws使用这些令人惊叹的库:

  • 请求
    • 面向人类的python http库
  • AWS请求验证
    • 用于python请求模块的aws signature version 4签名过程
  • botocore
    • boto 3(官方aws python sdk)的底层核心功能
  • pygments
    • python语法高亮
  • 色差
    • python中简单的跨平台彩色终端文本
  • lxml
    • 使用python的xml

替代品

  • httpie
    • 一个很棒的、功能更丰富的http cli,它并不特定于aws
  • 卷曲
      "SWI"s army knife"用于通过url传输数据的命令行工具和库

警告

此工具用于开发和教育目的。它不是为了坚固可靠 AWS服务管理。对于与生产aws服务的交互,强烈建议您使用 专门为此目的而设计的官方支持的工具,如以下任何一种:

贡献

参见贡献.md

更改日志

请参见changelog.mdchangelog.md

许可证

apache 2.0:许可证

作者

todd leonhardt创建了httpaws和 这些优秀的人做出了贡献。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如果SQL server执行计划是流式传输数据,那么调用next()时Java ResultSet对象将如何反应?   java为什么水平滚动条永远不会出现在JTable上?   java如何在Android项目中添加SDK模块   绿脚:爪哇。lang.ClassCastException:无法将障碍物投射到球投射物   xslt需要在Java1.4.2中使用SaxonB(版本9.1.0.8)方面的帮助   java Apache HTTP客户端下载SOAP响应的一部分   为Java 9计划的“过滤传入序列化数据”解决了数据反序列化安全漏洞吗?   java如何使用drools对列表中的元素进行分组   java从匿名类到lambda表达式   Java中是否有不可变的单链表实现?   java动态添加按钮以滚动查看安卓   java GAE:无法为模块http请求设置管理员登录凭据   java如何在Hibernate 5 CriteriaBuilder中使用条件条件获取计数   java如何将JSON+HAL响应解析为POJO   java如何获取计算器程序,对两个以上的数字进行加、减、乘、除   java Thymeleaf+静态资源+@ResponseBody