embulk-output-ftp 0.2.0 → 0.2.1
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 +7 -4
- data/CHANGELOG.md +3 -1
- data/README.md +23 -14
- data/build.gradle +5 -5
- data/docker-compose.yml +24 -0
- data/docker-ftps/Dockerfile +9 -0
- data/docker-ftps/ca.cert.pem +35 -0
- data/docker-ftps/ca.key.pem +51 -0
- data/docker-ftps/run-vsftpd-with-ssl.sh +12 -0
- data/src/main/java/org/embulk/output/ftp/FtpFileOutputPlugin.java +2 -2
- data/src/test/java/org/embulk/output/ftp/TestFtpFileOutputPlugin.java +30 -15
- metadata +8 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1832391d6c6f0f5d74151a1ff9efb2eacb00f1cd
|
4
|
+
data.tar.gz: 57a38106df95458da2618516ad3a55cb4105ad4b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2a01f2622c0f7a27b16d7e95cab138c9cbe6dfc5b1c9289151ef2b3cb3f0e64f1c70209ff29e5a629a7e9af5cb0eb14089be2f892ca5dd86c387e6bc98e8389e
|
7
|
+
data.tar.gz: 47944e72c5e2a3a63df8ea3b9b5b1041cd19a189d37012d2a467e681d29d2feb7859195fed0855d0be04e0eb1c4d02b474ccbe5d38d247c87779a523dd4863ca
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
## 0.1
|
1
|
+
## 0.2.1 - 2018-12-14
|
2
|
+
* [maintenance] Update Embulk version v0.8.9 to v0.9.11 and refactor code for Java8 support [#21](https://github.com/embulk/embulk-output-ftp/pull/21)
|
3
|
+
## 0.2.0 - 2018-07-04
|
2
4
|
* [maintenance] Only support Java8 [#16](https://github.com/embulk/embulk-output-ftp/pull/16)
|
3
5
|
* [maintenance] Use embulk-util-ftp from Bintray [#15](https://github.com/embulk/embulk-output-ftp/pull/15)
|
4
6
|
|
data/README.md
CHANGED
@@ -117,32 +117,41 @@ $ ./gradlew gem # -t to watch change of files and rebuild continuously
|
|
117
117
|
|
118
118
|
## Test
|
119
119
|
|
120
|
-
|
120
|
+
Firstly install Docker and Docker compose then `docker-compose up -d`,
|
121
|
+
so that an FTP server will be locally launched then you can run tests with `./gradlew test`.
|
122
|
+
|
123
|
+
```sh
|
124
|
+
$ docker-compose up -d
|
125
|
+
Creating network "embulk-output-ftp_default" with the default driver
|
126
|
+
Creating embulk-output-ftp_server ... done
|
127
|
+
Creating embulk-output-ftps_server ... done
|
128
|
+
|
129
|
+
$ docker-compose ps
|
130
|
+
Name Command State Ports
|
131
|
+
---------------------------------------------------------------------------------------------------
|
132
|
+
embulk-output-ftp_server /usr/sbin/run-vsftpd.sh Up 20/tcp, 0.0.0.0:11021->21/tcp, 0.0.0.0:65000->65000/tcp, 0.0.0.0:65001->65001/tcp, 0.0.0.0:65002->65002/tcp, 0.0.0.0:65003->65003/tcp,
|
133
|
+
0.0.0.0:65004->65004/tcp
|
134
|
+
embulk-output-ftps_server /usr/sbin/run-vsftpd-with- ... Up 20/tcp, 0.0.0.0:990->21/tcp, 0.0.0.0:65005->65005/tcp, 0.0.0.0:65006->65006/tcp, 0.0.0.0:65007->65007/tcp, 0.0.0.0:65008->65008/tcp
|
135
|
+
|
121
136
|
$ ./gradlew test # -t to watch change of files and rebuild continuously
|
122
137
|
```
|
123
138
|
|
124
|
-
|
125
|
-
|
126
|
-
When environment variables are not set, skip some test cases.
|
139
|
+
If you want to use other FTP server to test, configure the following environment variables.
|
127
140
|
|
128
141
|
```
|
129
|
-
FTP_TEST_HOST
|
130
|
-
|
131
|
-
|
142
|
+
FTP_TEST_HOST (default: localhost)
|
143
|
+
FTP_TEST_PORT (default: 11021)
|
144
|
+
FTP_TEST_SSL_PORT (default:990)
|
145
|
+
FTP_TEST_USER (default: scott)
|
146
|
+
FTP_TEST_PASSWORD (default: tigger)
|
132
147
|
FTP_TEST_SSL_TRUSTED_CA_CERT_FILE
|
133
148
|
FTP_TEST_SSL_TRUSTED_CA_CERT_DATA
|
134
149
|
```
|
135
150
|
|
136
|
-
Following option is optional
|
137
|
-
```
|
138
|
-
FTP_TEST_PORT (default:21)
|
139
|
-
FTP_TEST_SSL__PORT (default:990)
|
140
|
-
```
|
141
|
-
|
142
151
|
If you're using Mac OS X El Capitan and GUI Applications(IDE), like as follows.
|
143
152
|
```xml
|
144
153
|
|
145
|
-
|
154
|
+
$ vi ~/Library/LaunchAgents/environment.plist
|
146
155
|
<?xml version="1.0" encoding="UTF-8"?>
|
147
156
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
148
157
|
<plist version="1.0">
|
data/build.gradle
CHANGED
@@ -17,20 +17,20 @@ configurations {
|
|
17
17
|
provided
|
18
18
|
}
|
19
19
|
|
20
|
-
version = "0.2.
|
20
|
+
version = "0.2.1"
|
21
21
|
|
22
22
|
sourceCompatibility = 1.8
|
23
23
|
targetCompatibility = 1.8
|
24
24
|
|
25
25
|
dependencies {
|
26
|
-
compile "org.embulk:embulk-core:0.
|
27
|
-
provided "org.embulk:embulk-core:0.
|
26
|
+
compile "org.embulk:embulk-core:0.9.11"
|
27
|
+
provided "org.embulk:embulk-core:0.9.11"
|
28
28
|
compile files("libs/ftp4j-1.7.2.jar")
|
29
29
|
compile 'org.embulk.input.ftp:embulk-util-ftp:0.1.6'
|
30
30
|
compile "org.bouncycastle:bcpkix-jdk15on:1.52"
|
31
31
|
testCompile "junit:junit:4.+"
|
32
|
-
testCompile "org.embulk:embulk-core:0.
|
33
|
-
testCompile "org.embulk:embulk-standards:0.
|
32
|
+
testCompile "org.embulk:embulk-core:0.9.11:tests"
|
33
|
+
testCompile "org.embulk:embulk-standards:0.9.11"
|
34
34
|
}
|
35
35
|
|
36
36
|
task classpath(type: Copy, dependsOn: ["jar"]) {
|
data/docker-compose.yml
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
version: '3'
|
2
|
+
services:
|
3
|
+
ftp_server:
|
4
|
+
container_name: embulk-output-ftp_server
|
5
|
+
image: "fauria/vsftpd"
|
6
|
+
environment:
|
7
|
+
- FTP_USER=scott
|
8
|
+
- FTP_PASS=tiger
|
9
|
+
- PASV_MIN_PORT=65000
|
10
|
+
- PASV_MAX_PORT=65004
|
11
|
+
ports:
|
12
|
+
- "11021:21"
|
13
|
+
- "65000-65004:65000-65004"
|
14
|
+
ftps_server:
|
15
|
+
container_name: embulk-output-ftps_server
|
16
|
+
build: ./docker-ftps
|
17
|
+
environment:
|
18
|
+
- FTP_USER=scott
|
19
|
+
- FTP_PASS=tiger
|
20
|
+
- PASV_MIN_PORT=65005
|
21
|
+
- PASV_MAX_PORT=65008
|
22
|
+
ports:
|
23
|
+
- "990:21"
|
24
|
+
- "65005-65008:65005-65008"
|
@@ -0,0 +1,9 @@
|
|
1
|
+
FROM fauria/vsftpd
|
2
|
+
|
3
|
+
COPY ca.key.pem /etc/pki/tls/private/vsftpd.key.pem
|
4
|
+
COPY ca.cert.pem /etc/pki/tls/certs/vsftpd.cert.pem
|
5
|
+
|
6
|
+
COPY run-vsftpd-with-ssl.sh /usr/sbin/
|
7
|
+
RUN chmod +x /usr/sbin/run-vsftpd-with-ssl.sh
|
8
|
+
|
9
|
+
CMD ["/usr/sbin/run-vsftpd-with-ssl.sh"]
|
@@ -0,0 +1,35 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIGEzCCA/ugAwIBAgIJAPF+x8rtCyyOMA0GCSqGSIb3DQEBCwUAMIGfMQswCQYD
|
3
|
+
VQQGEwJKUDEOMAwGA1UECAwFVG9reW8xFTATBgNVBAcMDEV4YW1wbGUgVG93bjEY
|
4
|
+
MBYGA1UECgwPRXhhbXBsZSBDb21wYW55MRgwFgYDVQQLDA9FeGFtcGxlIFNlY3Rp
|
5
|
+
b24xFDASBgNVBAMMC2V4YW1wbGUuY29tMR8wHQYJKoZIhvcNAQkBFhB0ZXN0QGV4
|
6
|
+
YW1wbGUuY29tMB4XDTE4MDcxNTE2MDIyMFoXDTM4MDcxMDE2MDIyMFowgZ8xCzAJ
|
7
|
+
BgNVBAYTAkpQMQ4wDAYDVQQIDAVUb2t5bzEVMBMGA1UEBwwMRXhhbXBsZSBUb3du
|
8
|
+
MRgwFgYDVQQKDA9FeGFtcGxlIENvbXBhbnkxGDAWBgNVBAsMD0V4YW1wbGUgU2Vj
|
9
|
+
dGlvbjEUMBIGA1UEAwwLZXhhbXBsZS5jb20xHzAdBgkqhkiG9w0BCQEWEHRlc3RA
|
10
|
+
ZXhhbXBsZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDHT2XK
|
11
|
+
9igFWH1iXVdwvS8U+bQJlSYafUHCDACTdzvNwJCwCwVkF5u7kOe5Tc3yVg/m7YVx
|
12
|
+
YldYaUSGhPHvVPp2sSCKl//Zqjcy0R5pLWNiEU8Omj55rBLWGHKrJzzFjcTMlbYs
|
13
|
+
FIqVAr7E/uOjBFuwZTqkVk2/Pl1VwMxB2/MwxlS8WadhVIpwe9s3bUNmuPTkp6Ol
|
14
|
+
dLDPRFV6Qwo0sV739PAmAi8UB4OcnrS4e6Aj+mlileMO8zv/f4LFldjA8uIrGDyP
|
15
|
+
w/tFu3g0BmUsrqBbcc7lJ2WmMjgtPHk9XoITPqW81VakhTO/v7s9qe7YS8fk33N9
|
16
|
+
+Ad7JMwotOVu0ekCRDQ1kqgXyxdgMBXt0iX0466nKSBwKNjMr8tJJqzAPbjlGysN
|
17
|
+
r8oVfllKQATfaXdIW+ZrxHBjpq4PzLuV9gFXYeBSRd1dIrgQk42G/fgdPMmY+tpe
|
18
|
+
XBA0BROStbj1hpeFjCOH8fhKFyE86ol93lVJkX5FFh7yCS0g3LCclTSiM2qEghzA
|
19
|
+
g81vwUrsrnfL+NJSCubDv8JfTuvaninihaq9Lql6BWXescaHEv3E47k9Tva+J8FO
|
20
|
+
q1zs6oBI8J1/PXZ99E+Kd1ADSDnI8dkYtaVO19JmYTfytUJpHnplGAuPeXV2H6ZP
|
21
|
+
rH7J4BG84mP0vlbz81w/uQK8nMdiMMNcK23LiQIDAQABo1AwTjAdBgNVHQ4EFgQU
|
22
|
+
NozLa3yA5zAf8nqEveqrZWLH0x0wHwYDVR0jBBgwFoAUNozLa3yA5zAf8nqEveqr
|
23
|
+
ZWLH0x0wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAaxcX1c+0UBNg
|
24
|
+
rDUx5T2hR7IbiQ7wrXbZUIUnT7JEhRUfx/uFmkZ/U+PYy+xz1/O4y2fKnZwGlkhh
|
25
|
+
6yY/iBLiZiwf4u1liUEBA5xvqsFLUQeo+UxLNHTdRG6HjyTHZaqlJsVvUG2TT5Ht
|
26
|
+
PetKnKLy/52eiZO+Trrx8J08Z8E7viUxmQ/qEVEEZC2alr1VNRlLz+68qDOv8hHI
|
27
|
+
bEliuGHtij+q8+aATj8T1Gn2I/g0w0sXQpGo5GQu7iujSn9Lo4RxvD2wRdOiq+gP
|
28
|
+
o2GUB1mkWV/FWMwBZSC+rYcGilKdyfLRC+WfOQBDtJwCowXl/P9d/4uoVS4F1Oj0
|
29
|
+
Qxb1kXmxEkpxd6kIMiu49ISAlM+xYtcpMq/GFrk5vLOjNW84rHOlCv52NaOTJag5
|
30
|
+
tEHziSW3Twk5fsdqid8L6jLdtDBLnlF+oNje0F2hlHgOAamsAdNQP9sT+6ujgzKq
|
31
|
+
5auy0GPORUTtUsJvnKFhq2sAWImuEBtZVjIHKCqv904VYs2/be3x5t8dJnESGUBG
|
32
|
+
CEiUbFhKr7jZg5+TnMHzc07yOXCy+NZGIVndVarmb28E4XJPkNRkHKc284h/Mb17
|
33
|
+
VPMXE4MU8bguMLEooVoFEedqbE4s0mvWxZBNsBuqGj/avmeixntjK4wZYxaWHkPJ
|
34
|
+
9KyJ4D6tpRJdvPjvqeYYvWN2DtPOjqk=
|
35
|
+
-----END CERTIFICATE-----
|
@@ -0,0 +1,51 @@
|
|
1
|
+
-----BEGIN RSA PRIVATE KEY-----
|
2
|
+
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
|
51
|
+
-----END RSA PRIVATE KEY-----
|
@@ -0,0 +1,12 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
echo "ssl_enable=YES" >> /etc/vsftpd/vsftpd.conf
|
4
|
+
echo "rsa_cert_file=/etc/pki/tls/certs/vsftpd.cert.pem" >> /etc/vsftpd/vsftpd.conf
|
5
|
+
echo "rsa_private_key_file=/etc/pki/tls/private/vsftpd.key.pem" >> /etc/vsftpd/vsftpd.conf
|
6
|
+
echo "ssl_sslv2=NO" >> /etc/vsftpd/vsftpd.conf
|
7
|
+
echo "ssl_sslv3=NO" >> /etc/vsftpd/vsftpd.conf
|
8
|
+
echo "ssl_tlsv1=YES" >> /etc/vsftpd/vsftpd.conf
|
9
|
+
echo "force_local_data_ssl=YES" >> /etc/vsftpd/vsftpd.conf
|
10
|
+
echo "force_local_logins_ssl=YES" >> /etc/vsftpd/vsftpd.conf
|
11
|
+
|
12
|
+
/usr/sbin/run-vsftpd.sh
|
@@ -1,6 +1,5 @@
|
|
1
1
|
package org.embulk.output.ftp;
|
2
2
|
|
3
|
-
import com.google.common.base.Optional;
|
4
3
|
import com.google.common.base.Throwables;
|
5
4
|
import it.sauronsoftware.ftp4j.FTPAbortedException;
|
6
5
|
import it.sauronsoftware.ftp4j.FTPClient;
|
@@ -41,6 +40,7 @@ import java.net.ConnectException;
|
|
41
40
|
import java.nio.file.Path;
|
42
41
|
import java.nio.file.Paths;
|
43
42
|
import java.util.List;
|
43
|
+
import java.util.Optional;
|
44
44
|
|
45
45
|
public class FtpFileOutputPlugin implements FileOutputPlugin
|
46
46
|
{
|
@@ -405,7 +405,7 @@ public class FtpFileOutputPlugin implements FileOutputPlugin
|
|
405
405
|
|
406
406
|
if (task.getUser().isPresent()) {
|
407
407
|
log.info("Logging in with user {}", task.getUser().get());
|
408
|
-
client.login(task.getUser().get(), task.getPassword().
|
408
|
+
client.login(task.getUser().get(), task.getPassword().orElse(""));
|
409
409
|
}
|
410
410
|
|
411
411
|
log.info("Using passive mode");
|
@@ -21,7 +21,6 @@ import org.embulk.spi.Schema;
|
|
21
21
|
import org.embulk.spi.TransactionalFileOutput;
|
22
22
|
import org.embulk.standards.CsvParserPlugin;
|
23
23
|
import org.embulk.util.ftp.SSLPlugins;
|
24
|
-
import org.embulk.util.ftp.SSLPlugins.SSLPluginConfig;
|
25
24
|
|
26
25
|
import org.junit.Before;
|
27
26
|
import org.junit.BeforeClass;
|
@@ -30,7 +29,6 @@ import org.junit.Test;
|
|
30
29
|
import org.slf4j.Logger;
|
31
30
|
|
32
31
|
import static org.junit.Assert.assertEquals;
|
33
|
-
import static org.junit.Assume.assumeNotNull;
|
34
32
|
|
35
33
|
import java.io.BufferedInputStream;
|
36
34
|
import java.io.BufferedReader;
|
@@ -44,6 +42,7 @@ import java.lang.reflect.Method;
|
|
44
42
|
import java.security.GeneralSecurityException;
|
45
43
|
import java.util.Arrays;
|
46
44
|
import java.util.List;
|
45
|
+
import java.util.Map;
|
47
46
|
|
48
47
|
public class TestFtpFileOutputPlugin
|
49
48
|
{
|
@@ -67,19 +66,20 @@ public class TestFtpFileOutputPlugin
|
|
67
66
|
* FTP_TEST_SSL_TRUSTED_CA_CERT_FILE
|
68
67
|
*/
|
69
68
|
@BeforeClass
|
70
|
-
public static void initializeConstant()
|
69
|
+
public static void initializeConstant() throws Exception
|
71
70
|
{
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
71
|
+
final Map<String, String> env = System.getenv();
|
72
|
+
FTP_TEST_HOST = env.getOrDefault("FTP_TEST_HOST", "localhost");
|
73
|
+
FTP_TEST_PORT = Integer.valueOf(env.getOrDefault("FTP_TEST_PORT", "11021"));
|
74
|
+
FTP_TEST_SSL_PORT = Integer.valueOf(env.getOrDefault("FTP_TEST_SSL_PORT", "990"));
|
75
|
+
FTP_TEST_USER = env.getOrDefault("FTP_TEST_USER", "scott");
|
76
|
+
FTP_TEST_PASSWORD = env.getOrDefault("FTP_TEST_PASSWORD", "tiger");
|
77
|
+
FTP_TEST_SSL_TRUSTED_CA_CERT_FILE = env.getOrDefault("FTP_TEST_SSL_TRUSTED_CA_CERT_FILE",
|
78
|
+
"./docker-ftps/ca.cert.pem");
|
79
|
+
FTP_TEST_SSL_TRUSTED_CA_CERT_DATA = env.getOrDefault("FTP_TEST_SSL_TRUSTED_CA_CERT_DATA",
|
80
|
+
getFileContents("./docker-ftps/ca.cert.pem"));
|
81
|
+
|
82
|
+
FTP_TEST_DIRECTORY = getDirectory(env.getOrDefault("FTP_TEST_DIRECTORY", "/unittest/"));
|
83
83
|
FTP_TEST_PATH_PREFIX = FTP_TEST_DIRECTORY + "sample_";
|
84
84
|
LOCAL_PATH_PREFIX = Resources.getResource("sample_01.csv").getPath();
|
85
85
|
}
|
@@ -287,7 +287,7 @@ public class TestFtpFileOutputPlugin
|
|
287
287
|
.set("parser", parserConfig(schemaConfig()))
|
288
288
|
.set("type", "ftp")
|
289
289
|
.set("host", FTP_TEST_HOST)
|
290
|
-
.set("port",
|
290
|
+
.set("port", FTP_TEST_PORT)
|
291
291
|
.set("user", FTP_TEST_USER)
|
292
292
|
.set("password", FTP_TEST_PASSWORD)
|
293
293
|
.set("path_prefix", FTP_TEST_PATH_PREFIX)
|
@@ -435,4 +435,19 @@ public class TestFtpFileOutputPlugin
|
|
435
435
|
}
|
436
436
|
return bo.toByteArray();
|
437
437
|
}
|
438
|
+
|
439
|
+
private static String getFileContents(String path) throws Exception
|
440
|
+
{
|
441
|
+
StringBuilder sb = new StringBuilder();
|
442
|
+
try (InputStream is = new FileInputStream(new File(path))) {
|
443
|
+
BufferedReader br = new BufferedReader(new InputStreamReader(is));
|
444
|
+
String line = br.readLine();
|
445
|
+
|
446
|
+
while (line != null) {
|
447
|
+
sb.append(line).append("\n");
|
448
|
+
line = br.readLine();
|
449
|
+
}
|
450
|
+
}
|
451
|
+
return sb.toString();
|
452
|
+
}
|
438
453
|
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: embulk-output-ftp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Satoshi Akama
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-12-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,6 +52,11 @@ files:
|
|
52
52
|
- build.gradle
|
53
53
|
- config/checkstyle/checkstyle.xml
|
54
54
|
- config/checkstyle/default.xml
|
55
|
+
- docker-compose.yml
|
56
|
+
- docker-ftps/Dockerfile
|
57
|
+
- docker-ftps/ca.cert.pem
|
58
|
+
- docker-ftps/ca.key.pem
|
59
|
+
- docker-ftps/run-vsftpd-with-ssl.sh
|
55
60
|
- embulk-output-ftp.gemspec
|
56
61
|
- gradle/wrapper/gradle-wrapper.jar
|
57
62
|
- gradle/wrapper/gradle-wrapper.properties
|
@@ -67,7 +72,7 @@ files:
|
|
67
72
|
- classpath/bcprov-jdk15on-1.52.jar
|
68
73
|
- classpath/ftp4j-1.7.2.jar
|
69
74
|
- classpath/embulk-util-ftp-0.1.6.jar
|
70
|
-
- classpath/embulk-output-ftp-0.2.
|
75
|
+
- classpath/embulk-output-ftp-0.2.1.jar
|
71
76
|
homepage: https://github.com/embulk/embulk-output-ftp
|
72
77
|
licenses:
|
73
78
|
- Apache 2.0
|