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.
Files changed (29) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/build.yml +26 -0
  3. data/.github/workflows/release.yml +37 -0
  4. data/.gitignore +34 -0
  5. data/LICENSE +21 -0
  6. data/README.md +54 -0
  7. data/build.gradle +103 -0
  8. data/config/checkstyle/checkstyle.xml +130 -0
  9. data/config/checkstyle/default.xml +110 -0
  10. data/gradle/wrapper/gradle-wrapper.jar +0 -0
  11. data/gradle/wrapper/gradle-wrapper.properties +5 -0
  12. data/gradlew +172 -0
  13. data/gradlew.bat +84 -0
  14. data/lib/embulk/output/s3v2.rb +5 -0
  15. data/settings.gradle +2 -0
  16. data/src/main/java/org/embulk/output/s3v2/PluginTask.java +53 -0
  17. data/src/main/java/org/embulk/output/s3v2/S3V2FileOutputPlugin.java +49 -0
  18. data/src/main/java/org/embulk/output/s3v2/s3/S3ClientManager.java +161 -0
  19. data/src/main/java/org/embulk/output/s3v2/s3/S3MultiPartStatus.java +30 -0
  20. data/src/main/java/org/embulk/output/s3v2/strategy/AbstractStrategy.java +41 -0
  21. data/src/main/java/org/embulk/output/s3v2/strategy/BufferedStrategy.java +76 -0
  22. data/src/main/java/org/embulk/output/s3v2/strategy/FileOutputStrategy.java +166 -0
  23. data/src/main/java/org/embulk/output/s3v2/util/AbstractUnitComputation.java +39 -0
  24. data/src/main/java/org/embulk/output/s3v2/util/ChunksizeComputation.java +26 -0
  25. data/src/main/java/org/embulk/output/s3v2/util/ThresholdComputation.java +23 -0
  26. data/src/test/java/org/embulk/output/s3v2/strategy/BufferedStrategyTests.java +45 -0
  27. data/src/test/java/org/embulk/output/s3v2/util/ChunksizeComputationTests.java +53 -0
  28. data/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker +1 -0
  29. 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
+ }
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: []