全部产品
阿里云办公

初始化

更新时间:2018-07-25 18:03:22

OSSClient是OSS的Java客户端,用于管理存储空间和文件等OSS资源。使用Java SDK发起OSS请求,您需要初始化一个OSSClient实例,并根据需要修改ClientConfiguration的默认配置项。

新建OSSClient

新建OSSClient时,需要指定Endpoint。有关Endpoint的更多信息,请参见访问域名和数据中心自定义访问域名

使用OSS域名新建OSSClient

以下代码用于使用OSS域名新建OSSClient:

  1. // Endpoint以杭州为例,其它Region请按实际情况填写。
  2. String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
  3. // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  4. String accessKeyId = "<yourAccessKeyId>";
  5. String accessKeySecret = "<yourAccessKeySecret>";
  6. // 创建OSSClient实例。
  7. OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
  8. // 关闭OSSClient。
  9. ossClient.shutdown();

您的工程中可以有一个或多个OSSClient。OSSClient可以并发使用。

使用自定义域名新建OSSClient

以下代码用于使用自定义域名新建OSSClient:

  1. String endpoint = "<yourEndpoint>";
  2. // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  3. String accessKeyId = "<yourAccessKeyId>";
  4. String accessKeySecret = "<yourAccessKeySecret>";
  5. // 创建ClientConfiguration实例,按照您的需要修改默认参数。
  6. ClientConfiguration conf = new ClientConfiguration();
  7. // 开启支持CNAME。CNAME是指将自定义域名绑定到存储空间上。
  8. conf.setSupportCname(true);
  9. // 创建OSSClient实例。
  10. OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret, conf);
  11. // 关闭OSSClient。
  12. ossClient.shutdown();

说明:使用自定义域名时无法使用ossClient.listBuckets方法。

专有云/专有域环境新建OSSClient

以下代码用于使用专有云或专有域环境新建OSSClient:

  1. // Endpoint以杭州为例,其它Region请按实际情况填写。
  2. String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
  3. // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  4. String accessKeyId = "<yourAccessKeyId>";
  5. String accessKeySecret = "<yourAccessKeySecret>";
  6. // 创建ClientConfiguration实例,按照您的需要修改默认参数。
  7. ClientConfiguration conf = new ClientConfiguration();
  8. // 关闭CNAME选项。
  9. conf.setSupportCname(false);
  10. // 创建OSSClient实例。
  11. OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret, conf);
  12. // 关闭OSSClient。
  13. ossClient.shutdown();

使用IP新建OSSClient

以下代码用于使用IP新建OSSClient:

  1. // 某些特殊情况(比如专有域)下,您需要将IP地址做作为Endpoint,请按照实际IP地址填写。
  2. String endpoint = "http://10.10.10.10";
  3. // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  4. String accessKeyId = "<yourAccessKeyId>";
  5. String accessKeySecret = "<yourAccessKeySecret>";
  6. // 创建ClientConfiguration。
  7. ClientConfiguration conf = new ClientConfiguration();
  8. // 开启二级域名访问OSS,默认不开启。OSS Java SDK 2.1.2及以前的版本需要设置此值,OSS Java SDK 2.1.2以后的版本会自动检测到IP地址,不需要再设置此值。
  9. conf.setSLDEnabled(true);
  10. // 创建OSSClient实例。
  11. OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret, conf);
  12. // 关闭OSSClient。
  13. ossClient.shutdown();

使用STS新建OSSClient

以下代码用于使用STS新建一个OSSClient:

  1. // Endpoint以杭州为例,其它Region请按实际情况填写。
  2. String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
  3. // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  4. String accessKeyId = "<yourAccessKeyId>";
  5. String accessKeySecret = "<yourAccessKeySecret>";
  6. String securityToken = "<yourSecurityToken>";
  7. // 创建OSSClient实例。
  8. OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret, securityToken);
  9. // 关闭OSSClient。
  10. ossClient.shutdown();

更多信息请参见RAM和STS介绍授权访问

配置OSSClient

ClientConfiguration是OSSClient的配置类,您可通过此类来配置代理、连接超时、最大连接数等参数。可设置的参数如下:

参数 描述 方法
MaxConnections 允许打开的最大HTTP连接数。默认为1024 ClientConfiguration.setMaxConnections
SocketTimeout Socket层传输数据的超时时间(单位:毫秒)。默认为50000毫秒 ClientConfiguration.setSocketTimeout
ConnectionTimeout 建立连接的超时时间(单位:毫秒)。默认为50000毫秒 ClientConfiguration.setConnectionTimeout
ConnectionRequestTimeout 从连接池中获取连接的超时时间(单位:毫秒)。默认不超时 ClientConfiguration.setConnectionRequestTimeout
IdleConnectionTime 连接空闲超时时间,超时则关闭连接(单位:毫秒,默认为60000毫秒 ClientConfiguration.setIdleConnectionTime
MaxErrorRetry 请求失败后最大的重试次数。默认3次 ClientConfiguration.setMaxErrorRetry
SupportCname 是否支持CNAME作为Endpoint,默认支持CNAME ClientConfiguration.setSupportCname
SLDEnabled 是否开启二级域名(Second Level Domain)的访问方式,默认不开启 ClientConfiguration.setSLDEnabled
Protocol 连接OSS所采用的协议(HTTP/HTTPS),默认为HTTP ClientConfiguration.setProtocol
UserAgent 用户代理,指HTTP的User-Agent头。默认为”aliyun-sdk-java” ClientConfiguration.setUserAgent
ProxyHost 代理服务器主机地址 ClientConfiguration.setProxyHost
ProxyPort 代理服务器端口 ClientConfiguration.setProxyPort
ProxyUsername 代理服务器验证的用户名 ClientConfiguration.setProxyUsername
ProxyPassword 代理服务器验证的密码 ClientConfiguration.setProxyPassword

以下代码用于使用ClientConfiguration设置OSSClient参数:

  1. // Endpoint以杭州为例,其它Region请按实际情况填写。
  2. String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
  3. // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  4. String accessKeyId = "<yourAccessKeyId>";
  5. String accessKeySecret = "<yourAccessKeySecret>";
  6. // 创建ClientConfiguration。ClientConfiguration是OSSClient的配置类,可配置代理、连接超时、最大连接数等参数。
  7. ClientConfiguration conf = new ClientConfiguration();
  8. // 设置OSSClient允许打开的最大HTTP连接数,默认为1024个。
  9. conf.setMaxConnections(200);
  10. // 设置Socket层传输数据的超时时间,默认为50000毫秒。
  11. conf.setSocketTimeout(10000);
  12. // 设置建立连接的超时时间,默认为50000毫秒。
  13. conf.setConnectionTimeout(10000);
  14. // 设置从连接池中获取连接的超时时间(单位:毫秒),默认不超时。
  15. conf.setConnectionRequestTimeout(1000);
  16. // 设置连接空闲超时时间。超时则关闭连接,默认为60000毫秒。
  17. conf.setIdleConnectionTime(10000);
  18. // 设置失败请求重试次数,默认为3次。
  19. conf.setMaxErrorRetry(5);
  20. // 设置是否支持将自定义域名作为Endpoint,默认支持。
  21. conf.setSupportCname(true);
  22. // 设置是否开启二级域名的访问方式,默认不开启。
  23. conf.setSLDEnabled(true);
  24. // 设置连接OSS所使用的协议(HTTP/HTTPS),默认为HTTP。
  25. conf.setProtocol(Protocol.HTTP);
  26. // 设置用户代理,指HTTP的User-Agent头,默认为aliyun-sdk-java。
  27. conf.setUserAgent("aliyun-sdk-java");
  28. // 设置代理服务器端口。
  29. conf.setProxyHost("<yourProxyHost>");
  30. // 设置代理服务器验证的用户名。
  31. conf.setProxyUsername("<yourProxyUserName>");
  32. // 设置代理服务器验证的密码。
  33. conf.setProxyPassword("<yourProxyPassword>");
  34. // 创建OSSClient实例。
  35. OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret, conf);
  36. // 关闭OSSClient。
  37. ossClient.shutdown();

更多信息请参见阿里云OSS Java SDK超时时间设置

本文导读目录