embulk-input-gcs 0.3.1 → 0.3.2
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 +4 -4
- data/.travis.yml +2 -0
- data/CHANGELOG.md +3 -0
- data/build.gradle +2 -2
- data/src/main/java/org/embulk/input/gcs/GcsFileInput.java +10 -2
- data/src/test/java/org/embulk/input/gcs/TestGcsFileInputPlugin.java +21 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1464dc7e445f4ed06ee28336fb0eb53534fbb78b7ee6272c25d9b8a7faece5f2
|
4
|
+
data.tar.gz: b7f87e75f2bc970e9e4aa890299528b6a930f3e621444495f5563561c07a81c6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dbff12cfba5f647596023f6185f4177a533b0e90b738ce9861d437fc3304a971da471e8c06bd4564174cfd16f709488de76a65aba2a75ead3a78932663d1a3c3
|
7
|
+
data.tar.gz: da85294930e6cf321164d750f228ee3bafa91a352ed0fbfd44673509ef58acf70f629b98523eea7a38a8dd110b58cca2ba6542fc30ad0704c97264573bf42692
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
## 0.3.2 - 2020-01-13
|
2
|
+
* [maintenance] Improve base64encode method for last_path [#47](https://github.com/embulk/embulk-input-gcs/pull/47)
|
3
|
+
|
1
4
|
## 0.3.1 - 2019-01-07
|
2
5
|
* [maintenance] Updated Google Cloud Storage API Client Library from v1-rev59-1.21.0 to 1.56.0 [#40](https://github.com/embulk/embulk-input-gcs/pull/40)
|
3
6
|
* [new feature] Refactor to use InputStream (to replace local file download)
|
data/build.gradle
CHANGED
@@ -20,7 +20,7 @@ configurations {
|
|
20
20
|
sourceCompatibility = 1.8
|
21
21
|
targetCompatibility = 1.8
|
22
22
|
|
23
|
-
version = "0.3.
|
23
|
+
version = "0.3.2"
|
24
24
|
|
25
25
|
// Relocate Guava packages since it's incompatible with Guava's version from Embulk
|
26
26
|
shadowJar {
|
@@ -81,7 +81,7 @@ task checkstyle(type: Checkstyle) {
|
|
81
81
|
source = sourceSets.main.allJava + sourceSets.test.allJava
|
82
82
|
}
|
83
83
|
|
84
|
-
task gem(type: JRubyExec, dependsOn: ["
|
84
|
+
task gem(type: JRubyExec, dependsOn: ["gemspec", "classpath"]) {
|
85
85
|
script "gem"
|
86
86
|
scriptArgs "build", "build/gemspec"
|
87
87
|
doLast { ant.move(file: "${project.name}-${project.version}.gem", todir: "pkg") }
|
@@ -80,7 +80,7 @@ public class GcsFileInput
|
|
80
80
|
return builder.build();
|
81
81
|
}
|
82
82
|
|
83
|
-
// String nextToken = base64Encode(0x0a +
|
83
|
+
// String nextToken = base64Encode(0x0a + ASCII character according to utf8EncodeLength position+ filePath);
|
84
84
|
@VisibleForTesting
|
85
85
|
static String base64Encode(String path)
|
86
86
|
{
|
@@ -88,9 +88,17 @@ public class GcsFileInput
|
|
88
88
|
byte[] utf8 = path.getBytes(Charsets.UTF_8);
|
89
89
|
LOG.debug("path string: {} ,path length:{} \" + ", path, utf8.length);
|
90
90
|
|
91
|
+
int utf8EncodeLength = utf8.length;
|
92
|
+
if (utf8EncodeLength >= 128) {
|
93
|
+
throw new ConfigException(String.format("last_path '%s' is too long to encode. Please try to reduce its length", path));
|
94
|
+
}
|
95
|
+
|
91
96
|
encoding = new byte[utf8.length + 2];
|
92
97
|
encoding[0] = 0x0a;
|
93
|
-
|
98
|
+
|
99
|
+
// for example: 60 -> '<'
|
100
|
+
char temp = (char) utf8EncodeLength;
|
101
|
+
encoding[1] = (byte) temp;
|
94
102
|
System.arraycopy(utf8, 0, encoding, 2, utf8.length);
|
95
103
|
|
96
104
|
String s = BaseEncoding.base64().encode(encoding);
|
@@ -346,6 +346,23 @@ public class TestGcsFileInputPlugin
|
|
346
346
|
runner.transaction(config, new Control());
|
347
347
|
}
|
348
348
|
|
349
|
+
@Test(expected = ConfigException.class)
|
350
|
+
public void testLastPathTooLong() throws Exception
|
351
|
+
{
|
352
|
+
ConfigSource config = Exec.newConfigSource()
|
353
|
+
.set("bucket", GCP_BUCKET)
|
354
|
+
.set("paths", Arrays.asList())
|
355
|
+
.set("auth_method", "private_key")
|
356
|
+
.set("service_account_email", GCP_EMAIL)
|
357
|
+
.set("p12_keyfile", GCP_P12_KEYFILE)
|
358
|
+
.set("json_keyfile", GCP_JSON_KEYFILE)
|
359
|
+
.set("application_name", GCP_APPLICATION_NAME)
|
360
|
+
.set("last_path", "テストダミー/テストダミーテストダミーテストダミーテストダミーテストダミーテストダミーテストダミー.csv")
|
361
|
+
.set("parser", parserConfig(schemaConfig()));
|
362
|
+
|
363
|
+
runner.transaction(config, new Control());
|
364
|
+
}
|
365
|
+
|
349
366
|
@Test
|
350
367
|
public void testGcsFileInputByOpen()
|
351
368
|
{
|
@@ -375,6 +392,10 @@ public class TestGcsFileInputPlugin
|
|
375
392
|
String params = "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc127";
|
376
393
|
String expected = "Cn9jY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjMTI3";
|
377
394
|
assertEquals(expected, GcsFileInput.base64Encode(params));
|
395
|
+
|
396
|
+
params = "テストダミー/テス123/テストダミー/テストダミ.csv";
|
397
|
+
expected = "CkPjg4bjgrnjg4jjg4Djg5/jg7wv44OG44K5MTIzL+ODhuOCueODiOODgOODn+ODvC/jg4bjgrnjg4jjg4Djg58uY3N2";
|
398
|
+
assertEquals(expected, GcsFileInput.base64Encode(params));
|
378
399
|
}
|
379
400
|
|
380
401
|
private ConfigSource config()
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: embulk-input-gcs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Satoshi Akama
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-01-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -56,7 +56,7 @@ files:
|
|
56
56
|
- classpath/checker-compat-qual-2.5.2.jar
|
57
57
|
- classpath/commons-codec-1.10.jar
|
58
58
|
- classpath/commons-logging-1.2.jar
|
59
|
-
- classpath/embulk-input-gcs-0.3.
|
59
|
+
- classpath/embulk-input-gcs-0.3.2-shadow.jar
|
60
60
|
- classpath/error_prone_annotations-2.1.3.jar
|
61
61
|
- classpath/gax-1.35.1.jar
|
62
62
|
- classpath/gax-httpjson-0.52.1.jar
|