Java Code Examples for com.amazonaws.services.s3.AmazonS3ClientBuilder#build()
The following examples show how to use
com.amazonaws.services.s3.AmazonS3ClientBuilder#build() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: S3Service.java From crate with Apache License 2.0 | 6 votes |
private AmazonS3 buildClient(final S3ClientSettings clientSettings) { final AmazonS3ClientBuilder builder = AmazonS3ClientBuilder.standard(); builder.withCredentials(buildCredentials(LOGGER, clientSettings)); builder.withClientConfiguration(buildConfiguration(clientSettings)); final String endpoint = Strings.hasLength(clientSettings.endpoint) ? clientSettings.endpoint : Constants.S3_HOSTNAME; LOGGER.debug("using endpoint [{}]", endpoint); // If the endpoint configuration isn't set on the builder then the default behaviour is to try // and work out what region we are in and use an appropriate endpoint - see AwsClientBuilder#setRegion. // In contrast, directly-constructed clients use s3.amazonaws.com unless otherwise instructed. We currently // use a directly-constructed client, and need to keep the existing behaviour to avoid a breaking change, // so to move to using the builder we must set it explicitly to keep the existing behaviour. // // We do this because directly constructing the client is deprecated (was already deprecated in 1.1.223 too) // so this change removes that usage of a deprecated API. builder.withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(endpoint, null)); return builder.build(); }
Example 2
Source File: JceksAmazonS3ClientFactory.java From circus-train with Apache License 2.0 | 6 votes |
private AmazonS3 newGlobalInstance( S3S3CopierOptions s3s3CopierOptions, HadoopAWSCredentialProviderChain credentialsChain) { AmazonS3ClientBuilder builder = AmazonS3ClientBuilder .standard() .withForceGlobalBucketAccessEnabled(Boolean.TRUE) .withCredentials(credentialsChain); applyClientConfigurations(builder, s3s3CopierOptions); URI s3Endpoint = s3s3CopierOptions.getS3Endpoint(); if (s3Endpoint != null) { EndpointConfiguration endpointConfiguration = new EndpointConfiguration(s3Endpoint.toString(), Region.US_Standard.getFirstRegionId()); builder.withEndpointConfiguration(endpointConfiguration); } return builder.build(); }
Example 3
Source File: JceksAmazonS3ClientFactory.java From circus-train with Apache License 2.0 | 6 votes |
private AmazonS3 newInstance( String region, S3S3CopierOptions s3s3CopierOptions, HadoopAWSCredentialProviderChain credentialsChain) { AmazonS3ClientBuilder builder = AmazonS3ClientBuilder .standard() .withCredentials(credentialsChain); applyClientConfigurations(builder, s3s3CopierOptions); URI s3Endpoint = s3s3CopierOptions.getS3Endpoint(region); if (s3Endpoint != null) { EndpointConfiguration endpointConfiguration = new EndpointConfiguration(s3Endpoint.toString(), region); builder.withEndpointConfiguration(endpointConfiguration); } else { builder.withRegion(region); } return builder.build(); }
Example 4
Source File: AwsS3Test.java From ecs-sync with Apache License 2.0 | 6 votes |
@Before public void setup() throws Exception { Properties syncProperties = TestConfig.getProperties(); endpoint = syncProperties.getProperty(TestConfig.PROP_S3_ENDPOINT); accessKey = syncProperties.getProperty(TestConfig.PROP_S3_ACCESS_KEY_ID); secretKey = syncProperties.getProperty(TestConfig.PROP_S3_SECRET_KEY); region = syncProperties.getProperty(TestConfig.PROP_S3_REGION); String proxyUri = syncProperties.getProperty(TestConfig.PROP_HTTP_PROXY_URI); Assume.assumeNotNull(endpoint, accessKey, secretKey); endpointUri = new URI(endpoint); ClientConfiguration config = new ClientConfiguration().withSignerOverride("S3SignerType"); if (proxyUri != null) { URI uri = new URI(proxyUri); config.setProxyHost(uri.getHost()); config.setProxyPort(uri.getPort()); } AmazonS3ClientBuilder builder = AmazonS3ClientBuilder.standard() .withCredentials(new AWSStaticCredentialsProvider(new BasicAWSCredentials(accessKey, secretKey))) .withClientConfiguration(config) .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(endpoint, region)); s3 = builder.build(); }
Example 5
Source File: AmazonS3Provider.java From emodb with Apache License 2.0 | 6 votes |
private static AmazonS3 getAmazonS3(final S3BucketConfiguration s3BucketConfiguration, Clock clock) { AmazonS3ClientBuilder amazonS3ClientBuilder = AmazonS3ClientBuilder.standard() .withCredentials(getAwsCredentialsProvider(s3BucketConfiguration)) .withAccelerateModeEnabled(s3BucketConfiguration.getAccelerateModeEnabled()); S3ClientConfiguration.RateLimitConfiguration rateLimitConfiguration = new S3ClientConfiguration.RateLimitConfiguration(); if (null != s3BucketConfiguration.getRegion()) { amazonS3ClientBuilder .withRegion(Regions.fromName(s3BucketConfiguration.getRegion())); } else if (null != s3BucketConfiguration.getS3ClientConfiguration()) { S3ClientConfiguration.EndpointConfiguration endpointConfiguration = s3BucketConfiguration.getS3ClientConfiguration().getEndpointConfiguration(); amazonS3ClientBuilder .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(endpointConfiguration.getServiceEndpoint(), endpointConfiguration.getSigningRegion())); rateLimitConfiguration = s3BucketConfiguration.getS3ClientConfiguration().getRateLimitConfiguration(); } AmazonS3 amazonS3 = amazonS3ClientBuilder .build(); return new S3RateLimiter(clock, rateLimitConfiguration) .rateLimit(amazonS3); }
Example 6
Source File: S3RepositoryAutoConfiguration.java From hawkbit-extensions with Eclipse Public License 1.0 | 5 votes |
/** * @return the {@link AmazonS3Client} if no other {@link AmazonS3} bean is * registered. */ @Bean @ConditionalOnMissingBean public AmazonS3 amazonS3() { final AmazonS3ClientBuilder s3ClientBuilder = AmazonS3ClientBuilder.standard() .withCredentials(awsCredentialsProvider()).withClientConfiguration(awsClientConfiguration()); if (!StringUtils.isEmpty(endpoint)) { final String signingRegion = StringUtils.isEmpty(region) ? "" : region; s3ClientBuilder.withEndpointConfiguration(new EndpointConfiguration(endpoint, signingRegion)); } else if (!StringUtils.isEmpty(region)) { s3ClientBuilder.withRegion(region); } return s3ClientBuilder.build(); }
Example 7
Source File: AwsS3EnvironmentRepositoryFactory.java From spring-cloud-config with Apache License 2.0 | 5 votes |
@Override public AwsS3EnvironmentRepository build( AwsS3EnvironmentProperties environmentProperties) { final AmazonS3ClientBuilder clientBuilder = AmazonS3ClientBuilder.standard(); if (environmentProperties.getRegion() != null) { clientBuilder.withRegion(environmentProperties.getRegion()); } final AmazonS3 client = clientBuilder.build(); if (environmentProperties.getEndpoint() != null) { client.setEndpoint(environmentProperties.getEndpoint()); } AwsS3EnvironmentRepository repository = new AwsS3EnvironmentRepository(client, environmentProperties.getBucket(), server); return repository; }
Example 8
Source File: S3ArtifactStore.java From gocd-s3-artifacts with Apache License 2.0 | 5 votes |
public static AmazonS3 getS3client(GoEnvironment env) { AmazonS3ClientBuilder amazonS3ClientBuilder = AmazonS3ClientBuilder.standard(); if (env.has(AWS_REGION)) { amazonS3ClientBuilder.withRegion(env.get(AWS_REGION)); } if (env.hasAWSUseIamRole()) { amazonS3ClientBuilder.withCredentials(new InstanceProfileCredentialsProvider(false)); } else if (env.has(AWS_ACCESS_KEY_ID) && env.has(AWS_SECRET_ACCESS_KEY)) { BasicAWSCredentials basicCreds = new BasicAWSCredentials(env.get(AWS_ACCESS_KEY_ID), env.get(AWS_SECRET_ACCESS_KEY)); amazonS3ClientBuilder.withCredentials(new AWSStaticCredentialsProvider(basicCreds)); } return amazonS3ClientBuilder.build(); }
Example 9
Source File: S3ConnectionBaseConfig.java From datacollector with Apache License 2.0 | 5 votes |
private void createConnection( Stage.Context context, String configPrefix, ProxyConfig proxyConfig, List<Stage.ConfigIssue> issues, int maxErrorRetries ) throws StageException { AWSCredentialsProvider credentials = AWSUtil.getCredentialsProvider(awsConfig); ClientConfiguration clientConfig = AWSUtil.getClientConfiguration(proxyConfig); if (maxErrorRetries >= 0) { clientConfig.setMaxErrorRetry(maxErrorRetries); } AmazonS3ClientBuilder builder = AmazonS3ClientBuilder .standard() .withCredentials(credentials) .withClientConfiguration(clientConfig) .withChunkedEncodingDisabled(awsConfig.disableChunkedEncoding) .withPathStyleAccessEnabled(usePathAddressModel); if (region == AwsRegion.OTHER) { if (endpoint == null || endpoint.isEmpty()) { issues.add(context.createConfigIssue(Groups.S3.name(), configPrefix + "endpoint", Errors.S3_SPOOLDIR_10)); return; } builder.withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(endpoint, null)); } else { builder.withRegion(region.getId()); } s3Client = builder.build(); }
Example 10
Source File: S3Accessor.java From datacollector with Apache License 2.0 | 5 votes |
AmazonS3Client createS3Client() throws StageException { AmazonS3ClientBuilder builder = createAmazonS3ClientBuilder().withClientConfiguration(createClientConfiguration()) .withChunkedEncodingDisabled(connectionConfigs .isChunkedEncodingEnabled()) .withPathStyleAccessEnabled(true); AWSCredentialsProvider awsCredentialsProvider = getCredentialsProvider(); // If we don't call build.withCredentials(...) then we will not overwrite the default credentials provider // already set in the builder when doing AmazonS3ClientBuilder.standard() so only calling build.withCredentials(...) // if our own provider exists if (awsCredentialsProvider != null) { builder.withCredentials(awsCredentialsProvider); } String region = (connectionConfigs.getRegion() == null || connectionConfigs.getRegion().isEmpty()) ? null : connectionConfigs.getRegion(); if (connectionConfigs.isUseEndpoint()) { builder.withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(connectionConfigs.getEndpoint(), region )); } else if (region != null) { builder.withRegion(connectionConfigs.getRegion()); } else { builder.withRegion(AwsRegion.US_WEST_1.getId()); builder.withForceGlobalBucketAccessEnabled(true); } return (AmazonS3Client) builder.build(); }
Example 11
Source File: AmazonS3FileSystemTestHelper.java From iaf with Apache License 2.0 | 5 votes |
private void open() { BasicAWSCredentials awsCreds = new BasicAWSCredentials(accessKey, secretKey); AmazonS3ClientBuilder s3ClientBuilder = AmazonS3ClientBuilder.standard() .withChunkedEncodingDisabled(chunkedEncodingDisabled) .withAccelerateModeEnabled(accelerateModeEnabled) .withForceGlobalBucketAccessEnabled(forceGlobalBucketAccessEnabled) .withRegion(clientRegion.getName()) .withCredentials(new AWSStaticCredentialsProvider(awsCreds)) .withClientConfiguration(this.getProxyConfig()); s3Client = s3ClientBuilder.build(); }
Example 12
Source File: S3Service.java From fullstop with Apache License 2.0 | 5 votes |
public S3Service(@Value("${fullstop.processor.properties.s3Region:#{null}}") String s3Region) { final AmazonS3ClientBuilder s3Builder = AmazonS3ClientBuilder.standard(); if (StringUtils.hasText(s3Region)) { s3Builder.setRegion(s3Region); } s3client = s3Builder.build(); }
Example 13
Source File: AmazonS3FileSystem.java From iaf with Apache License 2.0 | 5 votes |
@Override public void open() { CredentialFactory cf = new CredentialFactory(getAuthAlias(), getAccessKey(), getSecretKey()); BasicAWSCredentials awsCreds = new BasicAWSCredentials(cf.getUsername(), cf.getPassword()); AmazonS3ClientBuilder s3ClientBuilder = AmazonS3ClientBuilder.standard() .withChunkedEncodingDisabled(isChunkedEncodingDisabled()) .withForceGlobalBucketAccessEnabled(isForceGlobalBucketAccessEnabled()).withRegion(getClientRegion()) .withCredentials(new AWSStaticCredentialsProvider(awsCreds)) .withClientConfiguration(this.getProxyConfig()); s3Client = s3ClientBuilder.build(); }
Example 14
Source File: S3KeyGenerator.java From hadoop-ozone with Apache License 2.0 | 5 votes |
@Override public Void call() throws Exception { if (multiPart && fileSize < OM_MULTIPART_MIN_SIZE) { throw new IllegalArgumentException( "Size of multipart upload parts should be at least 5MB (5242880)"); } init(); AmazonS3ClientBuilder amazonS3ClientBuilder = AmazonS3ClientBuilder.standard() .withCredentials(new EnvironmentVariableCredentialsProvider()); if (endpoint.length() > 0) { amazonS3ClientBuilder .withPathStyleAccessEnabled(true) .withEndpointConfiguration( new EndpointConfiguration(endpoint, "us-east-1")); } else { amazonS3ClientBuilder.withRegion(Regions.DEFAULT_REGION); } s3 = amazonS3ClientBuilder.build(); content = RandomStringUtils.randomAscii(fileSize); timer = getMetrics().timer("key-create"); System.setProperty(DISABLE_PUT_OBJECT_MD5_VALIDATION_PROPERTY, "true"); runTests(this::createKey); return null; }
Example 15
Source File: S3ArtifactStore.java From gocd-s3-artifacts with Apache License 2.0 | 5 votes |
public static AmazonS3 getS3client(GoEnvironment env) { AmazonS3ClientBuilder amazonS3ClientBuilder = AmazonS3ClientBuilder.standard(); if (env.has(AWS_REGION)) { amazonS3ClientBuilder.withRegion(env.get(AWS_REGION)); } if (env.hasAWSUseIamRole()) { amazonS3ClientBuilder.withCredentials(new InstanceProfileCredentialsProvider(false)); } else if (env.has(AWS_ACCESS_KEY_ID) && env.has(AWS_SECRET_ACCESS_KEY)) { BasicAWSCredentials basicCreds = new BasicAWSCredentials(env.get(AWS_ACCESS_KEY_ID), env.get(AWS_SECRET_ACCESS_KEY)); amazonS3ClientBuilder.withCredentials(new AWSStaticCredentialsProvider(basicCreds)); } return amazonS3ClientBuilder.build(); }
Example 16
Source File: AwsS3BuildCacheServiceFactory.java From gradle-s3-build-cache with Apache License 2.0 | 5 votes |
private AmazonS3 createS3Client(AwsS3BuildCache config) { AmazonS3 s3; try { AmazonS3ClientBuilder s3Builder = AmazonS3ClientBuilder.standard(); if (!isNullOrEmpty(config.getAwsAccessKeyId()) && !isNullOrEmpty(config.getAwsSecretKey()) && !isNullOrEmpty(config.getSessionToken())) { s3Builder.withCredentials(new AWSStaticCredentialsProvider( new BasicSessionCredentials(config.getAwsAccessKeyId(), config.getAwsSecretKey(), config.getSessionToken()))); } else if (!isNullOrEmpty(config.getAwsAccessKeyId()) && !isNullOrEmpty(config.getAwsSecretKey())) { s3Builder.withCredentials(new AWSStaticCredentialsProvider( new BasicAWSCredentials(config.getAwsAccessKeyId(), config.getAwsSecretKey()))); } addHttpHeaders(s3Builder, config); if (isNullOrEmpty(config.getEndpoint())) { s3Builder.withRegion(config.getRegion()); } else { s3Builder.withEndpointConfiguration( new AwsClientBuilder.EndpointConfiguration(config.getEndpoint(), config.getRegion())); } s3 = s3Builder.build(); } catch (SdkClientException e) { logger.debug("Error while building AWS S3 client: {}", e.getMessage()); throw new GradleException("Creation of S3 build cache failed; cannot create S3 client", e); } return s3; }
Example 17
Source File: S3Reader.java From graylog-plugin-aws with Apache License 2.0 | 5 votes |
public S3Reader(Region region, HttpUrl proxyUrl, AWSAuthProvider authProvider) { AmazonS3ClientBuilder clientBuilder = AmazonS3ClientBuilder.standard().withRegion(region.getName()).withCredentials(authProvider); if(proxyUrl != null) { clientBuilder.withClientConfiguration(Proxy.forAWS(proxyUrl)); } this.client = clientBuilder.build(); }
Example 18
Source File: AwsConfiguration.java From kayenta with Apache License 2.0 | 4 votes |
@Bean boolean registerAwsCredentials( AwsConfigurationProperties awsConfigurationProperties, AccountCredentialsRepository accountCredentialsRepository) throws IOException { for (AwsManagedAccount awsManagedAccount : awsConfigurationProperties.getAccounts()) { String name = awsManagedAccount.getName(); List<AccountCredentials.Type> supportedTypes = awsManagedAccount.getSupportedTypes(); log.info("Registering AWS account {} with supported types {}.", name, supportedTypes); ClientConfiguration clientConfiguration = new ClientConfiguration(); if (awsManagedAccount.getProxyProtocol() != null) { if (awsManagedAccount.getProxyProtocol().equalsIgnoreCase("HTTPS")) { clientConfiguration.setProtocol(Protocol.HTTPS); } else { clientConfiguration.setProtocol(Protocol.HTTP); } Optional.ofNullable(awsManagedAccount.getProxyHost()) .ifPresent(clientConfiguration::setProxyHost); Optional.ofNullable(awsManagedAccount.getProxyPort()) .map(Integer::parseInt) .ifPresent(clientConfiguration::setProxyPort); } AmazonS3ClientBuilder amazonS3ClientBuilder = AmazonS3ClientBuilder.standard(); String profileName = awsManagedAccount.getProfileName(); if (!StringUtils.isEmpty(profileName)) { amazonS3ClientBuilder.withCredentials(new ProfileCredentialsProvider(profileName)); } AwsManagedAccount.ExplicitAwsCredentials explicitCredentials = awsManagedAccount.getExplicitCredentials(); if (explicitCredentials != null) { String sessionToken = explicitCredentials.getSessionToken(); AWSCredentials awsCreds = (sessionToken == null) ? new BasicAWSCredentials( explicitCredentials.getAccessKey(), explicitCredentials.getSecretKey()) : new BasicSessionCredentials( explicitCredentials.getAccessKey(), explicitCredentials.getSecretKey(), sessionToken); amazonS3ClientBuilder.withCredentials(new AWSStaticCredentialsProvider(awsCreds)); } String endpoint = awsManagedAccount.getEndpoint(); if (!StringUtils.isEmpty(endpoint)) { amazonS3ClientBuilder.setEndpointConfiguration( new AwsClientBuilder.EndpointConfiguration(endpoint, null)); amazonS3ClientBuilder.setPathStyleAccessEnabled(true); } else { Optional.ofNullable(awsManagedAccount.getRegion()) .ifPresent(amazonS3ClientBuilder::setRegion); } AmazonS3 amazonS3 = amazonS3ClientBuilder.build(); try { AwsCredentials awsCredentials = new AwsCredentials(); AwsNamedAccountCredentials.AwsNamedAccountCredentialsBuilder awsNamedAccountCredentialsBuilder = AwsNamedAccountCredentials.builder().name(name).credentials(awsCredentials); if (!CollectionUtils.isEmpty(supportedTypes)) { if (supportedTypes.contains(AccountCredentials.Type.OBJECT_STORE)) { String bucket = awsManagedAccount.getBucket(); String rootFolder = awsManagedAccount.getRootFolder(); if (StringUtils.isEmpty(bucket)) { throw new IllegalArgumentException( "AWS/S3 account " + name + " is required to specify a bucket."); } if (StringUtils.isEmpty(rootFolder)) { throw new IllegalArgumentException( "AWS/S3 account " + name + " is required to specify a rootFolder."); } awsNamedAccountCredentialsBuilder.bucket(bucket); awsNamedAccountCredentialsBuilder.region(awsManagedAccount.getRegion()); awsNamedAccountCredentialsBuilder.rootFolder(rootFolder); awsNamedAccountCredentialsBuilder.amazonS3(amazonS3); } awsNamedAccountCredentialsBuilder.supportedTypes(supportedTypes); } AwsNamedAccountCredentials awsNamedAccountCredentials = awsNamedAccountCredentialsBuilder.build(); accountCredentialsRepository.save(name, awsNamedAccountCredentials); } catch (Throwable t) { log.error("Could not load AWS account " + name + ".", t); } } return true; }
Example 19
Source File: S3Module.java From cassandra-backup with Apache License 2.0 | 4 votes |
private AmazonS3 provideAmazonS3(final Provider<CoreV1Api> coreV1ApiProvider, final AbstractOperationRequest operationRequest) { final S3Configuration s3Conf = resolveS3Configuration(coreV1ApiProvider, operationRequest); final AmazonS3ClientBuilder builder = AmazonS3ClientBuilder.standard(); if (s3Conf.awsEndpoint != null) { // AWS_REGION must be set if AWS_ENDPOINT is set if (s3Conf.awsRegion == null) { throw new IllegalArgumentException("AWS_REGION must be set if AWS_ENDPOINT is set."); } builder.withEndpointConfiguration(new EndpointConfiguration(s3Conf.awsEndpoint, s3Conf.awsRegion.toLowerCase())); } else if (s3Conf.awsRegion != null) { builder.withRegion(Regions.fromName(s3Conf.awsRegion.toLowerCase())); } // if we are not running against Kubernetes, credentials should be fetched from ~/.aws/... if (isRunningInKubernetes()) { // it is possible that we have not set any secrets for s3 so the last // resort is to fallback to AWS instance credentials. if (s3Conf.awsAccessKeyId != null && s3Conf.awsSecretKey != null) { builder.setCredentials(new AWSCredentialsProvider() { @Override public AWSCredentials getCredentials() { return new AWSCredentials() { @Override public String getAWSAccessKeyId() { return s3Conf.awsAccessKeyId; } @Override public String getAWSSecretKey() { return s3Conf.awsSecretKey; } }; } @Override public void refresh() { } }); } } return builder.build(); }
Example 20
Source File: AwsS3Storage.java From ecs-sync with Apache License 2.0 | 4 votes |
@Override public void configure(SyncStorage source, Iterator<SyncFilter> filters, SyncStorage target) { super.configure(source, filters, target); Assert.hasText(config.getAccessKey(), "accessKey is required"); Assert.hasText(config.getSecretKey(), "secretKey is required"); Assert.hasText(config.getBucketName(), "bucketName is required"); Assert.isTrue(config.getBucketName().matches("[A-Za-z0-9._-]+"), config.getBucketName() + " is not a valid bucket name"); AWSCredentials creds = new BasicAWSCredentials(config.getAccessKey(), config.getSecretKey()); ClientConfiguration cc = new ClientConfiguration(); if (config.getProtocol() != null) cc.setProtocol(Protocol.valueOf(config.getProtocol().toString().toUpperCase())); if (config.isLegacySignatures()) cc.setSignerOverride("S3SignerType"); if (config.getSocketTimeoutMs() >= 0) cc.setSocketTimeout(config.getSocketTimeoutMs()); AmazonS3ClientBuilder builder = AmazonS3ClientBuilder.standard() .withCredentials(new AWSStaticCredentialsProvider(creds)) .withClientConfiguration(cc); if (config.getHost() != null) { String endpoint = ""; if (config.getProtocol() != null) endpoint += config.getProtocol() + "://"; endpoint += config.getHost(); if (config.getPort() > 0) endpoint += ":" + config.getPort(); builder.setEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(endpoint, config.getRegion())); } else if (config.getRegion() != null) { builder.withRegion(config.getRegion()); } if (config.isDisableVHosts()) { log.info("The use of virtual hosted buckets has been DISABLED. Path style buckets will be used."); builder.withPathStyleAccessEnabled(true); } s3 = builder.build(); boolean bucketExists = s3.doesBucketExistV2(config.getBucketName()); boolean bucketHasVersions = false; if (bucketExists && config.isIncludeVersions()) { // check if versioning has ever been enabled on the bucket (versions will not be collected unless required) BucketVersioningConfiguration versioningConfig = s3.getBucketVersioningConfiguration(config.getBucketName()); List<String> versionedStates = Arrays.asList(BucketVersioningConfiguration.ENABLED, BucketVersioningConfiguration.SUSPENDED); bucketHasVersions = versionedStates.contains(versioningConfig.getStatus()); } if (config.getKeyPrefix() == null) config.setKeyPrefix(""); // make sure keyPrefix isn't null if (source == this) { if (config.getExcludedKeys() != null) { excludedKeyPatterns = new ArrayList<>(); for (String pattern : config.getExcludedKeys()) { excludedKeyPatterns.add(Pattern.compile(pattern)); } } } if (target == this) { // create bucket if it doesn't exist if (!bucketExists && config.isCreateBucket()) { s3.createBucket(config.getBucketName()); bucketExists = true; if (config.isIncludeVersions()) { s3.setBucketVersioningConfiguration(new SetBucketVersioningConfigurationRequest(config.getBucketName(), new BucketVersioningConfiguration(BucketVersioningConfiguration.ENABLED))); bucketHasVersions = true; } } // make sure MPU settings are valid if (config.getMpuThresholdMb() > MAX_PUT_SIZE_MB) { log.warn("{}MB is above the maximum PUT size of {}MB. the maximum will be used instead", config.getMpuThresholdMb(), MAX_PUT_SIZE_MB); config.setMpuThresholdMb(MAX_PUT_SIZE_MB); } if (config.getMpuPartSizeMb() < MIN_PART_SIZE_MB) { log.warn("{}MB is below the minimum MPU part size of {}MB. the minimum will be used instead", config.getMpuPartSizeMb(), MIN_PART_SIZE_MB); config.setMpuPartSizeMb(MIN_PART_SIZE_MB); } if (source != null) sourceReadWindow = source.getReadWindow(); } // make sure bucket exists if (!bucketExists) throw new ConfigurationException("The bucket " + config.getBucketName() + " does not exist."); // if syncing versions, make sure plugins support it and bucket has versioning enabled if (config.isIncludeVersions()) { if (!(source instanceof AbstractS3Storage && target instanceof AbstractS3Storage)) throw new ConfigurationException("Version migration is only supported between two S3 plugins"); if (!bucketHasVersions) throw new ConfigurationException("The specified bucket does not have versioning enabled."); } }