com.amazonaws.services.s3.model.EncryptionMaterialsProvider Java Examples
The following examples show how to use
com.amazonaws.services.s3.model.EncryptionMaterialsProvider.
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: AirpalModule.java From airpal with Apache License 2.0 | 6 votes |
@Singleton @Provides @Nullable public AmazonS3 provideAmazonS3Client(@Nullable AWSCredentials awsCredentials, @Nullable EncryptionMaterialsProvider encryptionMaterialsProvider) { if (awsCredentials == null) { if (encryptionMaterialsProvider == null) { return new AmazonS3Client(new InstanceProfileCredentialsProvider()); } else { return new AmazonS3EncryptionClient(new InstanceProfileCredentialsProvider(), encryptionMaterialsProvider); } } if (encryptionMaterialsProvider == null) { return new AmazonS3Client(awsCredentials); } else { return new AmazonS3EncryptionClient(awsCredentials, encryptionMaterialsProvider); } }
Example #2
Source File: AirpalModule.java From airpal with Apache License 2.0 | 6 votes |
@Nullable @Singleton @Provides private EncryptionMaterialsProvider provideEncryptionMaterialsProvider() { String empClassName = config.getS3EncryptionMaterialsProvider(); if (empClassName != null) { try { Class<?> empClass = Class.forName(empClassName); Object instance = empClass.newInstance(); if (instance instanceof EncryptionMaterialsProvider) { return (EncryptionMaterialsProvider) instance; } else { throw new IllegalArgumentException("Class " + empClassName + " must implement EncryptionMaterialsProvider"); } } catch (Exception x) { throw new RuntimeException("Unable to initialize EncryptionMaterialsProvider class " + empClassName + ": " + x, x); } } return null; }
Example #3
Source File: PrestoS3FileSystem.java From presto with Apache License 2.0 | 5 votes |
private static Optional<EncryptionMaterialsProvider> createEncryptionMaterialsProvider(Configuration hadoopConfig) { String kmsKeyId = hadoopConfig.get(S3_KMS_KEY_ID); if (kmsKeyId != null) { return Optional.of(new KMSEncryptionMaterialsProvider(kmsKeyId)); } String empClassName = hadoopConfig.get(S3_ENCRYPTION_MATERIALS_PROVIDER); if (empClassName == null) { return Optional.empty(); } try { Object instance = Class.forName(empClassName).getConstructor().newInstance(); if (!(instance instanceof EncryptionMaterialsProvider)) { throw new RuntimeException("Invalid encryption materials provider class: " + instance.getClass().getName()); } EncryptionMaterialsProvider emp = (EncryptionMaterialsProvider) instance; if (emp instanceof Configurable) { ((Configurable) emp).setConf(hadoopConfig); } return Optional.of(emp); } catch (ReflectiveOperationException e) { throw new RuntimeException("Unable to load or create S3 encryption materials provider: " + empClassName, e); } }
Example #4
Source File: PrestoS3FileSystem.java From presto with Apache License 2.0 | 4 votes |
private AmazonS3 createAmazonS3Client(Configuration hadoopConfig, ClientConfiguration clientConfig) { Optional<EncryptionMaterialsProvider> encryptionMaterialsProvider = createEncryptionMaterialsProvider(hadoopConfig); AmazonS3Builder<? extends AmazonS3Builder<?, ?>, ? extends AmazonS3> clientBuilder; String signerType = hadoopConfig.get(S3_SIGNER_TYPE); if (signerType != null) { clientConfig.withSignerOverride(signerType); } String signerClass = hadoopConfig.get(S3_SIGNER_CLASS); if (signerClass != null) { Class<? extends Signer> klass; try { klass = Class.forName(signerClass).asSubclass(Signer.class); } catch (ClassNotFoundException e) { throw new RuntimeException("Signer class not found: " + signerClass, e); } SignerFactory.registerSigner(S3_CUSTOM_SIGNER, klass); clientConfig.setSignerOverride(S3_CUSTOM_SIGNER); } if (encryptionMaterialsProvider.isPresent()) { clientBuilder = AmazonS3EncryptionClient.encryptionBuilder() .withCredentials(credentialsProvider) .withEncryptionMaterials(encryptionMaterialsProvider.get()) .withClientConfiguration(clientConfig) .withMetricsCollector(METRIC_COLLECTOR); } else { clientBuilder = AmazonS3Client.builder() .withCredentials(credentialsProvider) .withClientConfiguration(clientConfig) .withMetricsCollector(METRIC_COLLECTOR); } boolean regionOrEndpointSet = false; // use local region when running inside of EC2 if (pinS3ClientToCurrentRegion) { clientBuilder.setRegion(getCurrentRegionFromEC2Metadata().getName()); regionOrEndpointSet = true; } String endpoint = hadoopConfig.get(S3_ENDPOINT); if (endpoint != null) { clientBuilder.setEndpointConfiguration(new EndpointConfiguration(endpoint, null)); regionOrEndpointSet = true; } if (isPathStyleAccess) { clientBuilder.enablePathStyleAccess(); } if (!regionOrEndpointSet) { clientBuilder.withRegion(US_EAST_1); clientBuilder.setForceGlobalBucketAccessEnabled(true); } return clientBuilder.build(); }