全部产品
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
阿里云SDK开发指南

使用Java SDK

更新时间:2018-02-24 13:20:41

安装

阿里云Java SDK支持1.6及以上版本的JDK,提供以下两种安装方式:

  • 使用Maven(推荐)

    如果您使用了Maven管理依赖,您可以通过向pom.xml中添加以下代码来安装阿里云Java SDK。

    1. <dependency>
    2. <groupId>com.aliyun</groupId>
    3. <artifactId>aliyun-java-sdk-core</artifactId>
    4. <version>3.5.0</version>
    5. </dependency>
    6. <dependency>
    7. <groupId>com.aliyun</groupId>
    8. <artifactId>aliyun-java-sdk-ecs</artifactId>
    9. <version>3.0.0</version>
    10. </dependency>
  • 在集成开发环境(IDE)中导入JAR文件

    注意: 该安装方式会在下个主版本中被废弃,届时将仅支持通过Maven安装SDK。

    无论您使用Eclipse还是IntelliJ作为集成开发环境,都可以通过导入JAR文件的方式安装阿里云Java SDK。您可以在阿里云开发工具包(SDK)中下载各云产品的JAR文件。

    Eclipse

    完成以下操作,在Eclipse的项目中安装阿里云Java SDK:

    1. 将下载的aliyun-java-sdk-XXX.jar文件复制到您的项目文件夹中。

    2. 在Eclipse中打开您的项目,右键单击该项目,单击Properties

    3. 在弹出的对话框中,单击Java Build Path > Libraries > Add JARs,添加下载的JAR文件。

      Eclipse

    4. 单击Apply and Close

      IntelliJ

      完成以下操作,在IntelliJ的项目中安装阿里云Java SDK:

    5. 将下载的aliyun-java-sdk-XXX.jar文件复制到您的项目文件夹中。

    6. 在IntelliJ中打开您的项目,在菜单栏中单击File > Project Structure

    7. 在弹出的对话框中,单击Modules > Dependencies。在出现的列表中单击add > JARs or directories,选择要添加的JAR文件。

      IntelliJ

    8. 单击Apply,然后单击OK

设置身份验证凭据

当使用阿里云SDK访问阿里云服务时,您需要提供阿里云账号进行身份验证。

目前,Java SDK支持以下几种身份验证方式:

验证方式 说明
AccessKey 使用AccessKey ID和AccessKey Secret访问
StsToken 使用STS Token访问
RamRoleArn 使用RAM子账号的AssumeRole方式访问
EcsRamRole 在ECS实例上通过EcsRamRole实现免密验证
RsaKeyPair 使用RSA公私钥方式(仅日本站支持)

本文以AccessKey为例说明如何设置凭据。为了保证您的账号安全,建议您使用RAM账号来访问阿里云服务。阿里云账号的AccessKey对拥有的资源有完全的权限。RAM账号由阿里云账号授权创建,仅有对特定资源限定的操作权限。参考创建AccessKey获取RAM账号的AccessKey。

使用AccessKey作为访问凭据,需要在初始化Client时设置凭证。

注意:确保包含AccessKey的代码不会泄漏(例如提交到外部公开的GitHub项目),否则将会危害您的阿里云账号的信息安全。

  1. DefaultProfile profile = DefaultProfile.getProfile(
  2. "<your-region-id>", // 地域ID
  3. "<your-access-key-id>", // RAM账号的AccessKey ID
  4. "<your-access-key-secret>"); // RAM账号AccessKey Secret

发起调用

本文以ECS为例,介绍如何使用阿里云Java SDK发起请求。

  1. 新建一个AcsClient。

    1. IAcsClient client = new DefaultAcsClient(profile);
  2. 创建请求。

    请求类的命名规范为${apiName}Request,其中

    • ${apiName}为API名称,例如DescribeInstances。
    • 在引入多个产品SDK时,有可能存在Request类同名的情况,请注意按照package区分。

      1. DescribeInstancesRequest request = new DescribeInstancesRequest();
      2. request.setPageSize(10);
  3. 发起调用并处理应答。

    1. DescribeInstancesResponse response;
    2. try {
    3. response = client.getAcsResponse(request);
    4. for (DescribeInstancesResponse.Instance instance:response.getInstances()) {
    5. System.out.println(instance.getPublicIpAddress());
    6. }
    7. } catch (ServerException e) {
    8. e.printStackTrace();
    9. } catch (ClientException e) {
    10. e.printStackTrace();
    11. }

    正常情况下,应答中的所有字段,都会被反序列化到response中,您可以直接调用response.getXXX()来获得应答中的字段。

    1. instanceStatus := response.getStatus()

    如果出现了异常,或您需要原始HTTP应答的情况下,您可以通过以使用doAction()来获取原始应答。

    1. HttpResponse response = client.doAction(request);
本文导读目录