| # Camel-Kafka-connector FTPS Sink |
| |
| This is an example for Camel-Kafka-connector FTPS Sink |
| |
| ## Standalone |
| |
| ### What is needed |
| |
| - An FTPS server |
| |
| ### Setting up FTPS Server |
| |
| We'll use the loicmathieu/vsftpd docker image |
| |
| Run the following command: |
| |
| ``` |
| > docker run -p 21:21 -p21100-21110:21100-21110 --env PASV_ADDRESS=127.0.0.1 loicmathieu/vsftpd ftps |
| Launching vsftp on ftps protocol |
| Activating passv on 127.0.0.1 |
| Generating self-signed certificate |
| Generating a 2048 bit RSA private key |
| ..........................+++ |
| ..................................+++ |
| writing new private key to '/etc/vsftpd/private/vsftpd.pem' |
| ``` |
| |
| In another terminal |
| |
| ``` |
| > docker ps |
| CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES |
| ce99af9141c9 loicmathieu/vsftpd "/start.sh ftps" 7 seconds ago Up 6 seconds 0.0.0.0:21->21/tcp, 20/tcp, 0.0.0.0:21100-21110->21100-21110/tcp confident_leavitt |
| ``` |
| |
| take note of the container id. In our case it is ce99af9141c9 |
| |
| ### Running Kafka |
| |
| ``` |
| $KAFKA_HOME/bin/zookeeper-server-start.sh $KAFKA_HOME/config/zookeeper.properties |
| $KAFKA_HOME/bin/kafka-server-start.sh $KAFKA_HOME/config/server.properties |
| $KAFKA_HOME/bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic mytopic |
| ``` |
| |
| |
| ### Setting up the needed bits and running the example |
| |
| You'll need to setup the plugin.path property in your kafka |
| |
| Open the `$KAFKA_HOME/config/connect-standalone.properties` |
| |
| and set the `plugin.path` property to your choosen location |
| |
| Download the connector package tar.gz and extract the content to a directory. In this example we'll use `/home/oscerd/connectors/` |
| |
| [source] |
| ---- |
| > cd /home/oscerd/connectors/ |
| > wget https://repo1.maven.org/maven2/org/apache/camel/kafkaconnector/camel-ftps-kafka-connector/0.10.1/camel-ftps-kafka-connector-0.10.1-package.tar.gz |
| > untar.gz camel-ftps-kafka-connector-0.10.1-package.tar.gz |
| ---- |
| |
| Now it's time to setup the connector |
| |
| Open the FTPS sink configuration file |
| |
| ``` |
| name=CamelFtpsSinkConnector |
| connector.class=org.apache.camel.kafkaconnector.ftps.CamelFtpsSinkConnector |
| key.converter=org.apache.kafka.connect.storage.StringConverter |
| value.converter=org.apache.kafka.connect.storage.StringConverter |
| |
| topics=mytopic |
| |
| camel.sink.path.host=127.0.0.1 |
| camel.sink.path.port=21 |
| camel.sink.endpoint.passiveMode=true |
| camel.sink.endpoint.username=guest |
| camel.sink.endpoint.password=guest |
| camel.sink.endpoint.fileName=mydata-${date:now:yyyyMMdd}.txt |
| camel.sink.endpoint.fileExist=append |
| ``` |
| |
| Now you can run the example |
| |
| ``` |
| $KAFKA_HOME/bin/connect-standalone.sh $KAFKA_HOME/config/connect-standalone.properties config/CamelFtpsSinkConnector.properties |
| ``` |
| |
| In a different terminal we need to send something to mytopic |
| |
| ``` |
| > echo "Hello from ckc" | ./kafkacat -b localhost:9092 -t mytopic |
| % Auto-selecting Producer mode (use -P or -C to override) |
| ``` |
| |
| Now we need to connect to the ftp server and check the file |
| |
| ``` |
| > docker exec -it ce99af9141c9 bash |
| [root@ce99af9141c9 /]# cd /home/ |
| [root@ce99af9141c9 home]# cd guest/ |
| [root@ce99af9141c9 guest]# su guest |
| [guest@ce99af9141c9 ~]$ cat mydata-20201111.txt |
| Hello from ckc |
| ``` |
| |