NIFI-1225: When ENDPOINT_OVERRIDE is set, use PathStyleAccess Reviewed by Mark Payne <[email protected]>
Project: http://git-wip-us.apache.org/repos/asf/nifi/repo Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/8f92ac99 Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/8f92ac99 Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/8f92ac99 Branch: refs/heads/master Commit: 8f92ac99318edd05f261932cdffd24fcaf4afb49 Parents: fcc032c Author: Tony Kurc <[email protected]> Authored: Tue Dec 1 20:06:43 2015 -0500 Committer: Tony Kurc <[email protected]> Committed: Tue Dec 1 20:33:21 2015 -0500 ---------------------------------------------------------------------- .../nifi/processors/aws/s3/AbstractS3Processor.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/nifi/blob/8f92ac99/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/AbstractS3Processor.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/AbstractS3Processor.java b/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/AbstractS3Processor.java index 3803158..e01efcb 100644 --- a/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/AbstractS3Processor.java +++ b/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/AbstractS3Processor.java @@ -20,6 +20,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; +import org.apache.commons.lang3.StringUtils; import org.apache.nifi.components.PropertyDescriptor; import org.apache.nifi.flowfile.FlowFile; import org.apache.nifi.processor.ProcessContext; @@ -30,6 +31,7 @@ import com.amazonaws.ClientConfiguration; import com.amazonaws.auth.AWSCredentials; import com.amazonaws.regions.Region; import com.amazonaws.services.s3.AmazonS3Client; +import com.amazonaws.services.s3.S3ClientOptions; import com.amazonaws.services.s3.model.AccessControlList; import com.amazonaws.services.s3.model.CanonicalGrantee; import com.amazonaws.services.s3.model.EmailAddressGrantee; @@ -103,7 +105,16 @@ public abstract class AbstractS3Processor extends AbstractAWSProcessor<AmazonS3C @Override protected AmazonS3Client createClient(final ProcessContext context, final AWSCredentials credentials, final ClientConfiguration config) { - return new AmazonS3Client(credentials, config); + final AmazonS3Client s3 = new AmazonS3Client(credentials, config); + + // if ENDPOINT_OVERRIDE is set, use PathStyleAccess + if(StringUtils.trimToEmpty(context.getProperty(ENDPOINT_OVERRIDE).getValue()).isEmpty() == false){ + final S3ClientOptions s3Options = new S3ClientOptions(); + s3Options.setPathStyleAccess(true); + s3.setS3ClientOptions(s3Options); + } + + return s3; } protected Grantee createGrantee(final String value) {
