69 lines
2.8 KiB
Plaintext
69 lines
2.8 KiB
Plaintext
This example demonstrates the following aspects of the SFTP support available with Spring Integration:
|
|
1. SFTP Inbound Channel Adapter (transfers files from remote to local directory)
|
|
2. SFTP Outbound Channel Adapter (transfers files from local to the remote directory)
|
|
|
|
In order to run this sample you need to
|
|
1. generate private/public keys. Below is simple directions what needs to be done
|
|
2. update user.properties file with appropriate values
|
|
3. run the sample
|
|
|
|
#### INBOUND CHANNEL ADAPTER ####
|
|
|
|
To run INBOUND CHANNEL ADAPTER sample execute SftpInboundReceiveSample test. You will see that based on configuration it
|
|
will access sample remote directory which contains 3 files and will attept to securly copy them to a local directory which
|
|
will be generated.
|
|
The output should look like this:
|
|
=====
|
|
Received first file message: [Payload=local-dir/a.txt][Headers={timestamp=1290066001349, id=9dca686a-cfd4-4d96-a1a7-761feb005e43}]
|
|
Received second file message: [Payload=local-dir/b.txt][Headers={timestamp=1290066001650, id=d33a475d-fa71-4c5b-b73e-3147969f1c6f}]
|
|
No third file was received null
|
|
=====
|
|
|
|
As you can see, although the remote directory had 3 files we only received 2 since we were filtering only the files that end with 'txt'.
|
|
|
|
#### OUTBOUND CHANNEL ADAPTER ####
|
|
|
|
To run OUTBOUND CHANNEL ADAPTER sample execute SftpOutboundTransferSample test. You will see that based on configuration it
|
|
will attempt to transfer this 'readme.txt' file to a remote directory 'remote-target-dir'
|
|
The output should look like this:
|
|
=====
|
|
Successfully transfered 'readme.txt' file to a remote location under the name 'readme.txt_foo'
|
|
=====
|
|
|
|
NOTE: You can see that we are using SpEL via 'remote-filename-generator-expression' attribute to define the remote file name by
|
|
simply appending '_foo' to the original file name.
|
|
|
|
|
|
====== HOW TO GENERATE KEYS ======
|
|
|
|
>$ ssh-keygen
|
|
Generating public/private rsa key pair.
|
|
Enter file in which to save the key (/Users/ozhurakousky/.ssh/id_rsa): ./sftp_rsa
|
|
Enter passphrase (empty for no passphrase):
|
|
Enter same passphrase again:
|
|
Your identification has been saved in ./sftp_rsa.
|
|
Your public key has been saved in ./sftp_rsa.pub.
|
|
The key fingerprint is:
|
|
2c:30:7c:18:3c:a0:d5:83:68:78:7e:c1:5f:c1:3e:3d ozhurakousky@oleg.home
|
|
The key's randomart image is:
|
|
+--[ RSA 2048]----+
|
|
|..o*. ... |
|
|
|o+o.Bo o |
|
|
|oo ==.o . |
|
|
| . .+..o E |
|
|
| . . S. . |
|
|
| . |
|
|
| |
|
|
| |
|
|
| |
|
|
+-----------------+
|
|
>$ ls
|
|
sftp_rsa sftp_rsa.pub
|
|
>$
|
|
|
|
2. Create a file ~/.ssh/authorized_keys and give it the required permissions
|
|
>$ chmod 600 ~/.ssh/authorized_keys
|
|
|
|
3. Then edit 'authorized_keys' file and paste in the contents of the public key file 'sftp_rsa.pub' .
|
|
4. Move your private key file 'sftp_rsa' to META-INF/keys directory
|