初始化

代码中的accessKey与secretKey是在媒体存储中创建用户后,系统分配给用户用于访问媒体存储的凭证。而 endpoint 是天翼云提供的服务端地址。

获取访问密钥

AccessKey(AK)和SecretAccessKey(SK)是用户访问媒体存储服务的密钥,密钥的管理和获取方式请查阅媒体存储帮助中心-密钥管理内容。

获取Endpoint

EndPoint的获取方式请查阅媒体存储帮助中心-基础信息内容。

新建Client

使用SDK功能前,需要新建Client,代码如下:

String accessKey = "<your-access-key>";
String secretKey = "<your-secret-access-key>";
String endPoint = "<your-endpoint>";
BasicAWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey);
ClientConfiguration clientConfiguration = new ClientConfiguration();
EndpointConfiguration endpointConfiguration = new EndpointConfiguration(
        endpoint, Regions.DEFAULT_REGION.getName());
AmazonS3 s3 = AmazonS3ClientBuilder.standard()
    	//客户端设置
        .withClientConfiguration(clientConfiguration)
    	//凭证设置
        .withCredentials(new AWSStaticCredentialsProvider(credentials))
        //endpoint设置
    	.withEndpointConfiguration(endpointConfiguration)
        .build();

如果需要修改客户端的一些默认配置,请在创建Client的时候使用withClientConfiguration方法传入ClientConfiguration实例,一部分示例设置代码如下:

ClientConfiguration clientConfiguration = new ClientConfiguration();
//设置client的最大HTTP连接数
clientConfiguration.setMaxConnections(50);
//设置Socket层超时时间
clientConfiguration.setSocketTimeout(50000);
//设置建立连接的超时时间
clientConfiguration.setConnectionTimeout(50000);

ClientConguration是客户端的配置类,可配置代理、连接超时、最大连接等参数。主要参数如下:

参数 描述 方法
maxConnections 允许打开的最大HTTP连接数。默认为50 ClientConguration.setMaxConnections
socketTimeout Socket层传输数据的超时时间(单位:毫秒)。默认为50,000毫秒 ClientConguration.setSocketTimeout
connectionTimeout 建立连接的超时时间(单位:毫秒)。默认为50,000毫秒 ClientConguration.setConnectionTimeout
requestTimeout 等待请求完成的超时时间(单位:毫秒)。默认不超时 ClientConguration.setRequestTimeout
clientExecutionTimeout 客户端请求执行超时时间 (单位:毫秒)。默认不超时 ClientConguration.setClientExecutionTimeout
maxErrorRetry 请求失败后最大的重试次数。默认3次 ClientConguration.setMaxErrorRetry
connectionMaxIdleMillis 如果空闲时间超过此参数的设定值,则关闭连接(单位:毫秒)。默认为60,000毫秒 ClientConguration.setConnectionMaxIdleMillis
signerOverride 若需要使用v2签名,可以设置为"S3SignerType";若需要使用v4签名,可以设置为"AWSS3V4SignerType"。默认为v4签名。 ClientConguration.setSignerOverride