embulk-input-s3 0.2.8 → 0.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4f8bc775d296e8ae5cfcaffe8d335f1f09de52cc
4
- data.tar.gz: ddfb843558dc281243bc6925f9f5abfefe72f4bc
3
+ metadata.gz: 581dfa840436ba5dddad8e98bf48a464da5fc408
4
+ data.tar.gz: 7451197f321556c6da2e2ff7ecd4575add015595
5
5
  SHA512:
6
- metadata.gz: 757deefb26f6d1ef1ca859d87d0f7aba7b347bfb3a98b845af112e0c786ca4c68775c52fad9dd79d4013e212f1975cbe6f507800dca9bbf04c1a2e02ed87f302
7
- data.tar.gz: 435a0194c28b19152c631cc78bf616e3ee1a50aa701b8f913723ac45c5b0517968f516db0cd5f841822215524214bf6916cac36d071be944e01cefb64dcca7a7
6
+ metadata.gz: ac5f4ce10e60ec00b050351e08ecda5cd5362a8282dc71a81268ee10bb6c93aae05d73b6e8489aab1ef55fdc43a7e763307e39bf0edecf0704753e0eb3124226
7
+ data.tar.gz: d7b7dc34bb59cb870ec31152db8a9178e44743ad5511ce95dda4cf00e368057d66b9ee3de4dfa2421f19b3431959c79fb2eecad5349288c864b5ac155b4f215d
@@ -1,3 +1,7 @@
1
+ dependencies {
2
+ compile project(":embulk-util-aws-credentials")
3
+ }
4
+
1
5
  task gemspec << { file("build/gemspec").write($/
2
6
  Gem::Specification.new do |spec|
3
7
  spec.name = "${project.name}"
@@ -41,6 +41,8 @@ import org.embulk.spi.util.InputStreamFileInput;
41
41
  import org.embulk.spi.util.ResumableInputStream;
42
42
  import org.embulk.spi.util.RetryExecutor.Retryable;
43
43
  import org.embulk.spi.util.RetryExecutor.RetryGiveupException;
44
+ import org.embulk.util.aws.credentials.AwsCredentials;
45
+ import org.embulk.util.aws.credentials.AwsCredentialsTask;
44
46
  import static org.embulk.spi.util.RetryExecutor.retryExecutor;
45
47
 
46
48
  public abstract class AbstractS3FileInputPlugin
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: embulk-input-s3
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.8
4
+ version: 0.2.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sadayuki Furuhashi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-25 00:00:00.000000000 Z
11
+ date: 2017-03-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -48,8 +48,6 @@ files:
48
48
  - build.gradle
49
49
  - lib/embulk/input/s3.rb
50
50
  - src/main/java/org/embulk/input/s3/AbstractS3FileInputPlugin.java
51
- - src/main/java/org/embulk/input/s3/AwsCredentials.java
52
- - src/main/java/org/embulk/input/s3/AwsCredentialsTask.java
53
51
  - src/main/java/org/embulk/input/s3/FileList.java
54
52
  - src/main/java/org/embulk/input/s3/S3FileInputPlugin.java
55
53
  - src/test/java/org/embulk/input/s3/TestAwsCredentials.java
@@ -61,7 +59,8 @@ files:
61
59
  - classpath/aws-java-sdk-kms-1.10.33.jar
62
60
  - classpath/aws-java-sdk-s3-1.10.33.jar
63
61
  - classpath/commons-codec-1.6.jar
64
- - classpath/embulk-input-s3-0.2.8.jar
62
+ - classpath/embulk-input-s3-0.2.9.jar
63
+ - classpath/embulk-util-aws-credentials-0.2.9.jar
65
64
  - classpath/httpclient-4.3.6.jar
66
65
  - classpath/httpcore-4.3.3.jar
67
66
  - classpath/jcl-over-slf4j-1.7.12.jar
@@ -1,179 +0,0 @@
1
- package org.embulk.input.s3;
2
-
3
- import com.google.common.base.Optional;
4
- import com.amazonaws.auth.AWSCredentials;
5
- import com.amazonaws.auth.AWSCredentialsProvider;
6
- import com.amazonaws.auth.AWSSessionCredentials;
7
- import com.amazonaws.auth.AWSSessionCredentialsProvider;
8
- import com.amazonaws.auth.AnonymousAWSCredentials;
9
- import com.amazonaws.auth.BasicAWSCredentials;
10
- import com.amazonaws.auth.BasicSessionCredentials;
11
- import com.amazonaws.auth.EnvironmentVariableCredentialsProvider;
12
- import com.amazonaws.auth.InstanceProfileCredentialsProvider;
13
- import com.amazonaws.auth.SystemPropertiesCredentialsProvider;
14
- import com.amazonaws.auth.profile.ProfileCredentialsProvider;
15
- import com.amazonaws.auth.profile.ProfilesConfigFile;
16
- import org.embulk.config.ConfigException;
17
- import org.embulk.spi.Exec;
18
- import org.embulk.spi.unit.LocalFile;
19
- import org.slf4j.Logger;
20
-
21
- public abstract class AwsCredentials
22
- {
23
- private AwsCredentials() { }
24
-
25
- public static AWSCredentialsProvider getAWSCredentialsProvider(AwsCredentialsTask task)
26
- {
27
- switch (task.getAuthMethod()) {
28
- case "basic":
29
- // for backward compatibility
30
- if (!task.getAccessKeyId().isPresent() && !task.getAccessKeyId().isPresent()) {
31
- final Logger log = Exec.getLogger(AwsCredentials.class);
32
- log.warn("Both access_key_id and secret_access_key are not set. Assuming that 'auth_method: anonymous' option is set.");
33
- log.warn("If you intentionally use anonymous authentication, please set 'auth_method: anonymous' option.");
34
- log.warn("This behavior will be removed in a futurte release.");
35
- reject(task.getSessionToken(), "session_token");
36
- reject(task.getProfileFile(), "profile_file");
37
- reject(task.getProfileName(), "profile_name");
38
- return new AWSCredentialsProvider() {
39
- public AWSCredentials getCredentials()
40
- {
41
- return new AnonymousAWSCredentials();
42
- }
43
-
44
- public void refresh() { }
45
- };
46
- }
47
- else {
48
- String accessKeyId = require(task.getAccessKeyId(), "'access_key_id', 'secret_access_key'");
49
- String secretAccessKey = require(task.getSecretAccessKey(), "'secret_access_key'");
50
- reject(task.getSessionToken(), "session_token");
51
- reject(task.getProfileFile(), "profile_file");
52
- reject(task.getProfileName(), "profile_name");
53
- final BasicAWSCredentials creds = new BasicAWSCredentials(accessKeyId, secretAccessKey);
54
- return new AWSCredentialsProvider() {
55
- public AWSCredentials getCredentials()
56
- {
57
- return creds;
58
- }
59
-
60
- public void refresh() { }
61
- };
62
- }
63
-
64
- case "env":
65
- reject(task.getAccessKeyId(), "access_key_id");
66
- reject(task.getSecretAccessKey(), "secret_access_key");
67
- reject(task.getSessionToken(), "session_token");
68
- reject(task.getProfileFile(), "profile_file");
69
- reject(task.getProfileName(), "profile_name");
70
- return overwriteBasicCredentials(task, new EnvironmentVariableCredentialsProvider().getCredentials());
71
-
72
- case "instance":
73
- reject(task.getAccessKeyId(), "access_key_id");
74
- reject(task.getSecretAccessKey(), "secret_access_key");
75
- reject(task.getSessionToken(), "session_token");
76
- reject(task.getProfileFile(), "profile_file");
77
- reject(task.getProfileName(), "profile_name");
78
- return new InstanceProfileCredentialsProvider();
79
-
80
- case "profile":
81
- {
82
- reject(task.getAccessKeyId(), "access_key_id");
83
- reject(task.getSecretAccessKey(), "secret_access_key");
84
- reject(task.getSessionToken(), "session_token");
85
-
86
- String profileName = task.getProfileName().or("default");
87
- ProfileCredentialsProvider provider;
88
- if (task.getProfileFile().isPresent()) {
89
- ProfilesConfigFile file = new ProfilesConfigFile(task.getProfileFile().get().getFile());
90
- provider = new ProfileCredentialsProvider(file, profileName);
91
- }
92
- else {
93
- provider = new ProfileCredentialsProvider(profileName);
94
- }
95
- task.setProfileName(Optional.<String>absent());
96
- task.setProfileFile(Optional.<LocalFile>absent());
97
-
98
- return overwriteBasicCredentials(task, provider.getCredentials());
99
- }
100
-
101
- case "properties":
102
- reject(task.getAccessKeyId(), "access_key_id");
103
- reject(task.getSecretAccessKey(), "secret_access_key");
104
- reject(task.getSessionToken(), "session_token");
105
- reject(task.getProfileFile(), "profile_file");
106
- reject(task.getProfileName(), "profile_name");
107
- return overwriteBasicCredentials(task, new SystemPropertiesCredentialsProvider().getCredentials());
108
-
109
- case "anonymous":
110
- reject(task.getAccessKeyId(), "access_key_id");
111
- reject(task.getSecretAccessKey(), "secret_access_key");
112
- reject(task.getSessionToken(), "session_token");
113
- reject(task.getProfileFile(), "profile_file");
114
- reject(task.getProfileName(), "profile_name");
115
- return new AWSCredentialsProvider() {
116
- public AWSCredentials getCredentials()
117
- {
118
- return new AnonymousAWSCredentials();
119
- }
120
-
121
- public void refresh() { }
122
- };
123
-
124
- case "session":
125
- {
126
- String accessKeyId = require(task.getAccessKeyId(), "'access_key_id', 'secret_access_key', 'session_token'");
127
- String secretAccessKey = require(task.getSecretAccessKey(), "'secret_access_key', 'session_token'");
128
- String sessionToken = require(task.getSessionToken(), "'session_token'");
129
- reject(task.getProfileFile(), "profile_file");
130
- reject(task.getProfileName(), "profile_name");
131
- final AWSSessionCredentials creds = new BasicSessionCredentials(accessKeyId, secretAccessKey, sessionToken);
132
- return new AWSSessionCredentialsProvider() {
133
- public AWSSessionCredentials getCredentials()
134
- {
135
- return creds;
136
- }
137
-
138
- public void refresh() { }
139
- };
140
- }
141
-
142
- default:
143
- throw new ConfigException(String.format("Unknwon auth_method '%s'. Supported methods are basic, instance, profile, properties, anonymous, and session.",
144
- task.getAuthMethod()));
145
- }
146
- }
147
-
148
- private static AWSCredentialsProvider overwriteBasicCredentials(AwsCredentialsTask task, final AWSCredentials creds)
149
- {
150
- task.setAuthMethod("basic");
151
- task.setAccessKeyId(Optional.of(creds.getAWSAccessKeyId()));
152
- task.setSecretAccessKey(Optional.of(creds.getAWSSecretKey()));
153
- return new AWSCredentialsProvider() {
154
- public AWSCredentials getCredentials()
155
- {
156
- return creds;
157
- }
158
-
159
- public void refresh() { }
160
- };
161
- }
162
-
163
- private static <T> T require(Optional<T> value, String message)
164
- {
165
- if (value.isPresent()) {
166
- return value.get();
167
- }
168
- else {
169
- throw new ConfigException("Required option is not set: " + message);
170
- }
171
- }
172
-
173
- private static <T> void reject(Optional<T> value, String message)
174
- {
175
- if (value.isPresent()) {
176
- throw new ConfigException("Invalid option is set: " + message);
177
- }
178
- }
179
- }
@@ -1,39 +0,0 @@
1
- package org.embulk.input.s3;
2
-
3
- import com.google.common.base.Optional;
4
- import org.embulk.config.Config;
5
- import org.embulk.config.ConfigDefault;
6
- import org.embulk.spi.unit.LocalFile;
7
-
8
- public interface AwsCredentialsTask
9
- {
10
- @Config("auth_method")
11
- @ConfigDefault("\"basic\"")
12
- String getAuthMethod();
13
- void setAuthMethod(String method);
14
-
15
- @Config("access_key_id")
16
- @ConfigDefault("null")
17
- Optional<String> getAccessKeyId();
18
- void setAccessKeyId(Optional<String> value);
19
-
20
- @Config("secret_access_key")
21
- @ConfigDefault("null")
22
- Optional<String> getSecretAccessKey();
23
- void setSecretAccessKey(Optional<String> value);
24
-
25
- @Config("session_token")
26
- @ConfigDefault("null")
27
- Optional<String> getSessionToken();
28
- void setSessionToken(Optional<String> value);
29
-
30
- @Config("profile_file")
31
- @ConfigDefault("null")
32
- Optional<LocalFile> getProfileFile();
33
- void setProfileFile(Optional<LocalFile> value);
34
-
35
- @Config("profile_name")
36
- @ConfigDefault("null")
37
- Optional<String> getProfileName();
38
- void setProfileName(Optional<String> value);
39
- }