
com.aliyun.oss.OSSClientBuilder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aliyun-sdk-oss Show documentation
Show all versions of aliyun-sdk-oss Show documentation
The Aliyun OSS SDK for Java used for accessing Aliyun Object Storage Service
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package com.aliyun.oss;
import com.aliyun.oss.common.auth.CredentialsProvider;
import com.aliyun.oss.common.auth.DefaultCredentialProvider;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.common.utils.StringUtils;
import com.aliyun.oss.internal.OSSConstants;
import static com.aliyun.oss.common.utils.CodingUtils.assertParameterNotNull;
/**
* Fluent builder for OSS Client. Use of the builder is preferred over using
* constructors of the client class.
*/
public class OSSClientBuilder implements OSSBuilder {
@Override
public OSS build(String endpoint, String accessKeyId, String secretAccessKey) {
return new OSSClient(endpoint, getDefaultCredentialProvider(accessKeyId, secretAccessKey),
getClientConfiguration());
}
@Override
public OSS build(String endpoint, String accessKeyId, String secretAccessKey, String securityToken) {
return new OSSClient(endpoint, getDefaultCredentialProvider(accessKeyId, secretAccessKey, securityToken),
getClientConfiguration());
}
@Override
public OSS build(String endpoint, String accessKeyId, String secretAccessKey, ClientBuilderConfiguration config) {
return new OSSClient(endpoint, getDefaultCredentialProvider(accessKeyId, secretAccessKey),
getClientConfiguration(config));
}
@Override
public OSS build(String endpoint, String accessKeyId, String secretAccessKey, String securityToken,
ClientBuilderConfiguration config) {
return new OSSClient(endpoint, getDefaultCredentialProvider(accessKeyId, secretAccessKey, securityToken),
getClientConfiguration(config));
}
@Override
public OSS build(String endpoint, CredentialsProvider credsProvider) {
return new OSSClient(endpoint, credsProvider, getClientConfiguration());
}
@Override
public OSS build(String endpoint, CredentialsProvider credsProvider, ClientBuilderConfiguration config) {
return new OSSClient(endpoint, credsProvider, getClientConfiguration(config));
}
private static ClientBuilderConfiguration getClientConfiguration() {
return new ClientBuilderConfiguration();
}
private static ClientBuilderConfiguration getClientConfiguration(ClientBuilderConfiguration config) {
if (config == null) {
config = new ClientBuilderConfiguration();
}
return config;
}
private static DefaultCredentialProvider getDefaultCredentialProvider(String accessKeyId, String secretAccessKey) {
return new DefaultCredentialProvider(accessKeyId, secretAccessKey);
}
private static DefaultCredentialProvider getDefaultCredentialProvider(String accessKeyId, String secretAccessKey,
String securityToken) {
return new DefaultCredentialProvider(accessKeyId, secretAccessKey, securityToken);
}
public static OSSClientBuilderImpl create() {
return new OSSClientBuilderImpl();
}
public static final class OSSClientBuilderImpl {
private String endpoint;
private CredentialsProvider credentialsProvider;
private ClientConfiguration clientConfiguration;
private String region;
private String cloudBoxId;
private OSSClientBuilderImpl() {
this.clientConfiguration = OSSClientBuilder.getClientConfiguration();
}
public OSSClientBuilderImpl endpoint(String endpoint) {
this.endpoint = endpoint;
return this;
}
public OSSClientBuilderImpl credentialsProvider(CredentialsProvider credentialsProvider) {
this.credentialsProvider = credentialsProvider;
return this;
}
public OSSClientBuilderImpl clientConfiguration(ClientConfiguration clientConfiguration) {
this.clientConfiguration = clientConfiguration;
return this;
}
public OSSClientBuilderImpl region(String region) {
this.region = region;
return this;
}
public OSSClientBuilderImpl cloudBoxId(String cloudBoxId) {
this.cloudBoxId = cloudBoxId;
return this;
}
public OSS build() {
assertParameterNotNull(endpoint, "endpoint");
assertParameterNotNull(credentialsProvider, "credentialsProvider");
assertParameterNotNull(clientConfiguration, "clientConfiguration");
if (SignVersion.V4.equals(clientConfiguration.getSignatureVersion())) {
assertParameterNotNull(region, "region");
}
OSSClient client = new OSSClient(endpoint, credentialsProvider, clientConfiguration);
if (!StringUtils.isNullOrEmpty(region)) {
client.setRegion(region);
}
if (!StringUtils.isNullOrEmpty(cloudBoxId)) {
client.setProduct(OSSConstants.PRODUCT_CLOUD_BOX);
client.setCloudBoxId(cloudBoxId);
}
return client;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy