embulk-output-s3v2 0.1.0
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 +7 -0
- data/.github/workflows/build.yml +26 -0
- data/.github/workflows/release.yml +37 -0
- data/.gitignore +34 -0
- data/LICENSE +21 -0
- data/README.md +54 -0
- data/build.gradle +103 -0
- data/config/checkstyle/checkstyle.xml +130 -0
- data/config/checkstyle/default.xml +110 -0
- data/gradle/wrapper/gradle-wrapper.jar +0 -0
- data/gradle/wrapper/gradle-wrapper.properties +5 -0
- data/gradlew +172 -0
- data/gradlew.bat +84 -0
- data/lib/embulk/output/s3v2.rb +5 -0
- data/settings.gradle +2 -0
- data/src/main/java/org/embulk/output/s3v2/PluginTask.java +53 -0
- data/src/main/java/org/embulk/output/s3v2/S3V2FileOutputPlugin.java +49 -0
- data/src/main/java/org/embulk/output/s3v2/s3/S3ClientManager.java +161 -0
- data/src/main/java/org/embulk/output/s3v2/s3/S3MultiPartStatus.java +30 -0
- data/src/main/java/org/embulk/output/s3v2/strategy/AbstractStrategy.java +41 -0
- data/src/main/java/org/embulk/output/s3v2/strategy/BufferedStrategy.java +76 -0
- data/src/main/java/org/embulk/output/s3v2/strategy/FileOutputStrategy.java +166 -0
- data/src/main/java/org/embulk/output/s3v2/util/AbstractUnitComputation.java +39 -0
- data/src/main/java/org/embulk/output/s3v2/util/ChunksizeComputation.java +26 -0
- data/src/main/java/org/embulk/output/s3v2/util/ThresholdComputation.java +23 -0
- data/src/test/java/org/embulk/output/s3v2/strategy/BufferedStrategyTests.java +45 -0
- data/src/test/java/org/embulk/output/s3v2/util/ChunksizeComputationTests.java +53 -0
- data/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker +1 -0
- metadata +110 -0
@@ -0,0 +1,53 @@
|
|
1
|
+
package org.embulk.output.s3v2.util;
|
2
|
+
|
3
|
+
import org.junit.jupiter.api.Assertions;
|
4
|
+
import org.junit.jupiter.api.DisplayName;
|
5
|
+
import org.junit.jupiter.api.Test;
|
6
|
+
import org.junit.jupiter.api.extension.ExtendWith;
|
7
|
+
import org.mockito.junit.jupiter.MockitoExtension;
|
8
|
+
|
9
|
+
/**
|
10
|
+
* @see ChunksizeComputation
|
11
|
+
*/
|
12
|
+
@ExtendWith(MockitoExtension.class)
|
13
|
+
public class ChunksizeComputationTests
|
14
|
+
{
|
15
|
+
@Test
|
16
|
+
@DisplayName("[Correct] Min chunksize")
|
17
|
+
public void testMinChunksizeCorrect() throws Exception
|
18
|
+
{
|
19
|
+
Assertions.assertEquals(5 * Math.pow(10, 6), ChunksizeComputation.getChunksizeBytes("5MB"));
|
20
|
+
}
|
21
|
+
|
22
|
+
@Test
|
23
|
+
@DisplayName("[Invalid] Lower than min chunksize")
|
24
|
+
public void testLowerThanMinChunksizeInvalid() throws Exception
|
25
|
+
{
|
26
|
+
IllegalArgumentException ex = Assertions.assertThrows(IllegalArgumentException.class,
|
27
|
+
() -> ChunksizeComputation.getChunksizeBytes("1MB"));
|
28
|
+
Assertions.assertEquals("Unrecognized range of value multipart_chunksize: 1MB", ex.getMessage());
|
29
|
+
}
|
30
|
+
|
31
|
+
@Test
|
32
|
+
@DisplayName("[Correct] Max chunksize")
|
33
|
+
public void testMaxChunksizeCorrect() throws Exception
|
34
|
+
{
|
35
|
+
Assertions.assertEquals(2.0 * Math.pow(10, 9), ChunksizeComputation.getChunksizeBytes("2GB"));
|
36
|
+
}
|
37
|
+
|
38
|
+
@Test
|
39
|
+
@DisplayName("[Invalid] Higher than max chunksize")
|
40
|
+
public void testHigherThanMaxChunksizeInvalid() throws Exception
|
41
|
+
{
|
42
|
+
IllegalArgumentException ex = Assertions.assertThrows(IllegalArgumentException.class,
|
43
|
+
() -> ChunksizeComputation.getChunksizeBytes("1TB"));
|
44
|
+
Assertions.assertEquals("Unrecognized range of value multipart_chunksize: 1TB", ex.getMessage());
|
45
|
+
}
|
46
|
+
|
47
|
+
@Test
|
48
|
+
@DisplayName("[Correct] Any chunksize")
|
49
|
+
public void testAnyChunksizeCorrect() throws Exception
|
50
|
+
{
|
51
|
+
Assertions.assertEquals(1060 * Math.pow(10, 6), ChunksizeComputation.getChunksizeBytes("1060MB"));
|
52
|
+
}
|
53
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
mock-maker-inline
|
metadata
ADDED
@@ -0,0 +1,110 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: embulk-output-s3v2
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Toshihiro Takushima
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2021-01-07 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Stores files on Amazon S3 using aws-sdk-java-v2.
|
14
|
+
email:
|
15
|
+
- ttksm.git@gmail.com
|
16
|
+
executables: []
|
17
|
+
extensions: []
|
18
|
+
extra_rdoc_files: []
|
19
|
+
files:
|
20
|
+
- ".github/workflows/build.yml"
|
21
|
+
- ".github/workflows/release.yml"
|
22
|
+
- ".gitignore"
|
23
|
+
- LICENSE
|
24
|
+
- README.md
|
25
|
+
- build.gradle
|
26
|
+
- classpath/annotations-2.15.60.jar
|
27
|
+
- classpath/apache-client-2.15.60.jar
|
28
|
+
- classpath/arns-2.15.60.jar
|
29
|
+
- classpath/auth-2.15.60.jar
|
30
|
+
- classpath/aws-core-2.15.60.jar
|
31
|
+
- classpath/aws-query-protocol-2.15.60.jar
|
32
|
+
- classpath/aws-xml-protocol-2.15.60.jar
|
33
|
+
- classpath/commons-codec-1.11.jar
|
34
|
+
- classpath/commons-logging-1.2.jar
|
35
|
+
- classpath/embulk-output-s3v2-0.1.0.jar
|
36
|
+
- classpath/eventstream-1.0.1.jar
|
37
|
+
- classpath/http-client-spi-2.15.60.jar
|
38
|
+
- classpath/httpclient-4.5.13.jar
|
39
|
+
- classpath/httpcore-4.4.13.jar
|
40
|
+
- classpath/jackson-annotations-2.10.5.jar
|
41
|
+
- classpath/jackson-core-2.10.5.jar
|
42
|
+
- classpath/jackson-databind-2.10.5.1.jar
|
43
|
+
- classpath/metrics-spi-2.15.60.jar
|
44
|
+
- classpath/netty-buffer-4.1.53.Final.jar
|
45
|
+
- classpath/netty-codec-4.1.53.Final.jar
|
46
|
+
- classpath/netty-codec-http-4.1.53.Final.jar
|
47
|
+
- classpath/netty-codec-http2-4.1.53.Final.jar
|
48
|
+
- classpath/netty-common-4.1.53.Final.jar
|
49
|
+
- classpath/netty-handler-4.1.53.Final.jar
|
50
|
+
- classpath/netty-nio-client-2.15.60.jar
|
51
|
+
- classpath/netty-reactive-streams-2.0.4.jar
|
52
|
+
- classpath/netty-reactive-streams-http-2.0.4.jar
|
53
|
+
- classpath/netty-resolver-4.1.53.Final.jar
|
54
|
+
- classpath/netty-transport-4.1.53.Final.jar
|
55
|
+
- classpath/netty-transport-native-epoll-4.1.53.Final-linux-x86_64.jar
|
56
|
+
- classpath/netty-transport-native-unix-common-4.1.53.Final.jar
|
57
|
+
- classpath/profiles-2.15.60.jar
|
58
|
+
- classpath/protocol-core-2.15.60.jar
|
59
|
+
- classpath/reactive-streams-1.0.3.jar
|
60
|
+
- classpath/regions-2.15.60.jar
|
61
|
+
- classpath/s3-2.15.60.jar
|
62
|
+
- classpath/sdk-core-2.15.60.jar
|
63
|
+
- classpath/slf4j-api-1.7.28.jar
|
64
|
+
- classpath/utils-2.15.60.jar
|
65
|
+
- config/checkstyle/checkstyle.xml
|
66
|
+
- config/checkstyle/default.xml
|
67
|
+
- gradle/wrapper/gradle-wrapper.jar
|
68
|
+
- gradle/wrapper/gradle-wrapper.properties
|
69
|
+
- gradlew
|
70
|
+
- gradlew.bat
|
71
|
+
- lib/embulk/output/s3v2.rb
|
72
|
+
- settings.gradle
|
73
|
+
- src/main/java/org/embulk/output/s3v2/PluginTask.java
|
74
|
+
- src/main/java/org/embulk/output/s3v2/S3V2FileOutputPlugin.java
|
75
|
+
- src/main/java/org/embulk/output/s3v2/s3/S3ClientManager.java
|
76
|
+
- src/main/java/org/embulk/output/s3v2/s3/S3MultiPartStatus.java
|
77
|
+
- src/main/java/org/embulk/output/s3v2/strategy/AbstractStrategy.java
|
78
|
+
- src/main/java/org/embulk/output/s3v2/strategy/BufferedStrategy.java
|
79
|
+
- src/main/java/org/embulk/output/s3v2/strategy/FileOutputStrategy.java
|
80
|
+
- src/main/java/org/embulk/output/s3v2/util/AbstractUnitComputation.java
|
81
|
+
- src/main/java/org/embulk/output/s3v2/util/ChunksizeComputation.java
|
82
|
+
- src/main/java/org/embulk/output/s3v2/util/ThresholdComputation.java
|
83
|
+
- src/test/java/org/embulk/output/s3v2/strategy/BufferedStrategyTests.java
|
84
|
+
- src/test/java/org/embulk/output/s3v2/util/ChunksizeComputationTests.java
|
85
|
+
- src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker
|
86
|
+
homepage: https://github.com/ttksm/embulk-output-s3v2
|
87
|
+
licenses:
|
88
|
+
- MIT
|
89
|
+
metadata: {}
|
90
|
+
post_install_message:
|
91
|
+
rdoc_options: []
|
92
|
+
require_paths:
|
93
|
+
- lib
|
94
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - ">="
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
99
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
requirements: []
|
105
|
+
rubyforge_project:
|
106
|
+
rubygems_version: 2.7.10
|
107
|
+
signing_key:
|
108
|
+
specification_version: 4
|
109
|
+
summary: Amazon S3 output plugin for Embulk
|
110
|
+
test_files: []
|