protected S3ClientOptions resolveS3ClientOptions() { final S3ClientOptions.Builder builder = S3ClientOptions.builder(); if (Boolean.TRUE.equals(this.chunkedEncodingDisabled)) { builder.disableChunkedEncoding(); } if (this.payloadSigningEnabled != null) { builder.setPayloadSigningEnabled(this.payloadSigningEnabled); } if (this.accelerateModeEnabled != null) { builder.setAccelerateModeEnabled(this.accelerateModeEnabled); } if (this.pathStyleAccessEnabled != null) { builder.setPathStyleAccess(this.pathStyleAccessEnabled); } if(Boolean.TRUE.equals(this.dualstackEnabled)) { builder.enableDualstack(); } if(Boolean.TRUE.equals(this.forceGlobalBucketAccessEnabled)) { builder.enableForceGlobalBucketAccess(); } return builder.build(); } }
public URL getPreSignedUrl(long attachmentId, HttpMethod method, boolean unaccelerated) { AmazonS3 client = new AmazonS3Client(credentials); GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(bucket, String.valueOf(attachmentId), method); request.setExpiration(new Date(System.currentTimeMillis() + DURATION)); request.setContentType("application/octet-stream"); if (unaccelerated) { client.setS3ClientOptions(S3ClientOptions.builder().setPathStyleAccess(true).build()); } else { client.setS3ClientOptions(S3ClientOptions.builder().setAccelerateModeEnabled(true).build()); } return client.generatePresignedUrl(request); }
@Before public void setup() { creds = new BasicAWSCredentials("accessKey", "secretKey"); s3 = new AmazonS3Client(creds); accelerateOption = S3ClientOptions.builder().setAccelerateModeEnabled(true).build(); }
.setAccelerateModeEnabled(Boolean.parseBoolean(props.getProperty("use-accelerated-mode"))) .build());
protected S3ClientOptions resolveS3ClientOptions() { final S3ClientOptions.Builder builder = S3ClientOptions.builder(); if (Boolean.TRUE.equals(this.chunkedEncodingDisabled)) { builder.disableChunkedEncoding(); } if (this.payloadSigningEnabled != null) { builder.setPayloadSigningEnabled(this.payloadSigningEnabled); } if (this.accelerateModeEnabled != null) { builder.setAccelerateModeEnabled(this.accelerateModeEnabled); } if (this.pathStyleAccessEnabled != null) { builder.setPathStyleAccess(this.pathStyleAccessEnabled); } if(Boolean.TRUE.equals(this.dualstackEnabled)) { builder.enableDualstack(); } if(Boolean.TRUE.equals(this.forceGlobalBucketAccessEnabled)) { builder.enableForceGlobalBucketAccess(); } return builder.build(); } }
void setBinaryTransferAccelerationEnabled(boolean enabled) { if (enabled) { // verify acceleration is enabled on the bucket BucketAccelerateConfiguration accelerateConfig = s3service.getBucketAccelerateConfiguration(new GetBucketAccelerateConfigurationRequest(bucket)); if (accelerateConfig.isAccelerateEnabled()) { // If transfer acceleration is enabled for presigned URIs, we need a separate AmazonS3Client // instance with the acceleration mode enabled, because we don't want the requests from the // data store itself to S3 to use acceleration s3PresignService = Utils.openService(properties); s3PresignService.setS3ClientOptions(S3ClientOptions.builder().setAccelerateModeEnabled(true).build()); LOG.info("S3 Transfer Acceleration enabled for presigned URIs."); } else { LOG.warn("S3 Transfer Acceleration is not enabled on the bucket {}. Will create normal, non-accelerated presigned URIs.", bucket, S3Constants.PRESIGNED_URI_ENABLE_ACCELERATION); } } else { s3PresignService = s3service; } }
void setBinaryTransferAccelerationEnabled(boolean enabled) { if (enabled) { // verify acceleration is enabled on the bucket BucketAccelerateConfiguration accelerateConfig = s3service.getBucketAccelerateConfiguration(new GetBucketAccelerateConfigurationRequest(bucket)); if (accelerateConfig.isAccelerateEnabled()) { // If transfer acceleration is enabled for presigned URIs, we need a separate AmazonS3Client // instance with the acceleration mode enabled, because we don't want the requests from the // data store itself to S3 to use acceleration s3PresignService = Utils.openService(properties); s3PresignService.setS3ClientOptions(S3ClientOptions.builder().setAccelerateModeEnabled(true).build()); LOG.info("S3 Transfer Acceleration enabled for presigned URIs."); } else { LOG.warn("S3 Transfer Acceleration is not enabled on the bucket {}. Will create normal, non-accelerated presigned URIs.", bucket, S3Constants.PRESIGNED_URI_ENABLE_ACCELERATION); } } else { s3PresignService = s3service; } }
@Test public void testBuilder() { S3ClientOptions options = S3ClientOptions.builder().setAccelerateModeEnabled(true) .setPathStyleAccess(true).build(); assertTrue(options.isAccelerateModeEnabled()); assertTrue(options.isPathStyleAccess()); } }