Skip to content

Commit 222918f

Browse files
committed
Merge remote-tracking branch 'civitaspo/client_configure' into client-configurable
2 parents 1469093 + 76140c0 commit 222918f

File tree

4 files changed

+591
-14
lines changed

4 files changed

+591
-14
lines changed

README.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,60 @@
5353
5454
- **session_token**: session token (string, required)
5555
56+
- **client_config**: configure S3 client config (optional)
57+
58+
- **protocol**: (enum, `HTTP` or `HTTPS`, optional)
59+
60+
- **max_connections**: (int, optional)
61+
62+
- **user_agent** (string, optional)
63+
64+
- **local_address**: name of a hostname (string, optional)
65+
66+
- **proxy_host**: name of a hostname (string, optional)
67+
68+
- **proxy_port**: (int, optional)
69+
70+
- **proxy_username**: (string, optional)
71+
72+
- **proxy_password**: (string, optional)
73+
74+
- **proxy_domain**: (string, optional)
75+
76+
- **proxy_workstation**: (string, optional)
77+
78+
- **max_error_retry**: (int, optional)
79+
80+
- **socket_timeout**: (int, optional)
81+
82+
- **connection_timeout**: (int, optional)
83+
84+
- **request_timeout**: (int, optional)
85+
86+
- **use_reaper**: (boolean, optional)
87+
88+
- **use_gzip**: (boolean, optional)
89+
90+
- **signer_override**: (string, optional)
91+
92+
- **preemptive_basic_proxy_auth**: (boolean, optional)
93+
94+
- **connection_ttl**: (long, optional)
95+
96+
- **connection_max_idle_millis**: (long, optional)
97+
98+
- **use_tcp_keep_alive**: (boolean, optional)
99+
100+
- **response_metadata_cache_size**: (int, optional)
101+
102+
- **use_expect_continue**: (boolean, optional)
103+
104+
- **secure_random**: (optional)
105+
106+
- **algorithm**: (string, required)
107+
108+
- **provider**: (string, optional)
109+
56110
* **path_match_pattern**: regexp to match file paths. If a file path doesn't match with this pattern, the file will be skipped (regexp string, optional)
57111
58112
* **total_file_count_limit**: maximum number of files to read (integer, optional)

embulk-input-s3/src/main/java/org/embulk/input/s3/AbstractS3FileInputPlugin.java

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,15 @@
11
package org.embulk.input.s3;
22

33
import java.util.List;
4-
import java.util.ArrayList;
5-
import java.util.Collections;
64
import java.util.Iterator;
75
import java.io.IOException;
86
import java.io.InterruptedIOException;
97
import java.io.InputStream;
108

119
import com.google.common.annotations.VisibleForTesting;
12-
import com.google.common.collect.ImmutableList;
1310
import com.google.common.base.Optional;
1411
import com.google.common.base.Throwables;
1512
import org.slf4j.Logger;
16-
import com.amazonaws.auth.AWSCredentials;
1713
import com.amazonaws.auth.AWSCredentialsProvider;
1814
import com.amazonaws.services.s3.AmazonS3Client;
1915
import com.amazonaws.services.s3.model.ListObjectsRequest;
@@ -23,7 +19,6 @@
2319
import com.amazonaws.services.s3.model.S3Object;
2420
import com.amazonaws.ClientConfiguration;
2521
import com.amazonaws.AmazonServiceException;
26-
import com.amazonaws.Protocol;
2722
import org.embulk.config.Config;
2823
import org.embulk.config.ConfigInject;
2924
import org.embulk.config.ConfigDefault;
@@ -65,7 +60,9 @@ public interface PluginTask
6560
@ConfigDefault("null")
6661
public Optional<String> getAccessKeyId();
6762

68-
// TODO timeout, ssl, etc
63+
@Config("client_config")
64+
@ConfigDefault("{}")
65+
public ClientConfigurationConfigurable.Task getClientConfigurationConfigurableTask();
6966

7067
public FileList getFiles();
7168
public void setFiles(FileList files);
@@ -129,14 +126,8 @@ protected AWSCredentialsProvider getCredentialsProvider(PluginTask task)
129126

130127
protected ClientConfiguration getClientConfiguration(PluginTask task)
131128
{
132-
ClientConfiguration clientConfig = new ClientConfiguration();
133-
134-
//clientConfig.setProtocol(Protocol.HTTP);
135-
clientConfig.setMaxConnections(50); // SDK default: 50
136-
clientConfig.setMaxErrorRetry(3); // SDK default: 3
137-
clientConfig.setSocketTimeout(8*60*1000); // SDK default: 50*1000
138-
139-
return clientConfig;
129+
ClientConfigurationConfigurable.Task configurableTask = task.getClientConfigurationConfigurableTask();
130+
return ClientConfigurationConfigurable.getClientConfiguration(configurableTask);
140131
}
141132

142133
private FileList listFiles(PluginTask task)

0 commit comments

Comments
 (0)