Sha256: fee4cd1de1b00f95980659434e20373f816aa8b90e91ec82db56e44ccb667163
Contents?: true
Size: 1.71 KB
Versions: 2
Compression:
Stored size: 1.71 KB
Contents
package org.embulk.output.s3_parquet.aws import com.amazonaws.client.builder.AwsClientBuilder import com.amazonaws.services.glue.{AWSGlue, AWSGlueClientBuilder} import com.amazonaws.services.s3.{AmazonS3, AmazonS3ClientBuilder} import com.amazonaws.services.s3.transfer.{TransferManager, TransferManagerBuilder} object Aws { trait Task extends AwsCredentials.Task with AwsEndpointConfiguration.Task with AwsClientConfiguration.Task with AwsS3Configuration.Task def apply(task: Task): Aws = { new Aws(task) } } class Aws(task: Aws.Task) { def withS3[A](f: AmazonS3 => A): A = { val builder: AmazonS3ClientBuilder = AmazonS3ClientBuilder.standard() AwsS3Configuration(task).configureAmazonS3ClientBuilder(builder) val svc = createService(builder) try f(svc) finally svc.shutdown() } def withTransferManager[A](f: TransferManager => A): A = { withS3 { s3 => val svc = TransferManagerBuilder.standard().withS3Client(s3).build() try f(svc) finally svc.shutdownNow(false) } } def withGlue[A](f: AWSGlue => A): A = { val builder: AWSGlueClientBuilder = AWSGlueClientBuilder.standard() val svc = createService(builder) try f(svc) finally svc.shutdown() } def createService[S <: AwsClientBuilder[S, T], T](builder: AwsClientBuilder[S, T]): T = { AwsEndpointConfiguration(task).configureAwsClientBuilder(builder) AwsClientConfiguration(task).configureAwsClientBuilder(builder) builder.setCredentials(AwsCredentials(task).createAwsCredentialsProvider) builder.build() } }
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
embulk-output-s3_parquet-0.1.0 | src/main/scala/org/embulk/output/s3_parquet/aws/Aws.scala |
embulk-output-s3_parquet-0.0.3 | src/main/scala/org/embulk/output/s3_parquet/aws/Aws.scala |