缘起
致敬AliyunCLI,不可否认它非常好用,可以直接发起API请求,但是它需要依赖具体的SDK,且无法识别SDK中未包含的命令,这就让我想做一个更自由一些的CLI工具。这样只要在API更新后,直接就可以使用,不需要等待SDK的迭代更新。
她的优势
- 不依赖SDK,完全使用用户传入的参数,忠心耿耿的拼接URL(只要API支持,就可以使用,不需依赖SDK是否更新)。
- 受惠于Java优秀的跨平台性,此程序在不同系统下均可顺利运行,拿着一个jar文件可以跑遍Windows、Mac和Linux(Solaris当然也没落下~)
- 命令使用绝大部分兼容AliyunCLI,会用AliyunCLI的同学只需花几分钟就可以上手JCLI
- 对中文字符的支持较好,实际测试在windows和linux下都可以正确显示中文字符
- 对于可以支持https的服务,优先使用https,提高安全性
她的不足
- 上面第一点的优点,也是它的缺点,由于不依赖SDK,她无法对传入的Action做校验,会出现即使输入一个错误的Action,还是会生成URL的情况。但俗话说的好,“鱼和熊掌不可兼得”,在得到巨大的自由度下,牺牲一点健壮性还是可以接受的。
- 一些未知的代码bug……(尽管我已经很努力地去设想可能的情况,并做了容错,但估计还是有一些坑 Orz)
运行要求
- JDK(JRE)>=1.6
- jar包中一种引入了所有依赖的非JRE的jar包,理论上不需要再引入别的依赖包了
发布说明
压缩包里包含了Windows和Linux下封装好的脚本、详细的程序说明文档和jar本体,由于限制,附件只能上传一个,zip包中包含了以上所有的文件。
支持的服务
由于JCLI没有使用SDK,所以支持的服务是一次添加,永久使用(前提是公共参数和请求地址没有修改),目前经过测试,JCLI支持以下服务(目前还是比较笨的写死在程序中的,后续会考虑用更灵活的方法实现):
C:\>jcli list
Available ServiceType: RDS | DOMAIN | ESS | SLB | CMS | VPC | EMR | CDN | ACTIONTRAILS | ECS | ALIDNS | DRDS | RAM
备注
在运行时,若JCLI发现无法parse的参数,会主动打印出,方便debug: