The Jsch component provides scp-based endpoints for copying files to a remote file system. It supports the SCP protocol using the Client API of the Jsch project.
Maven users will need to add a dependency on camel-jsch to their
pom.xml for this component:
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-jsch</artifactId>
<version>x.x.x</version>
<!-- use the same version as your Camel core version -->
</dependency>The URI format for a jsch scp endpoint is:
scp://host[:port]/destination[?options]
You can append query options to the URI in the following format:
?option=value&option=value&....
You can specify the filename either in the <path> part of the
URI or as a CamelFileName header on the message
(Exchange.FILE_NAME if used in code).
Table 57, “scp endpoint options” lists the options for an HTTP endpoint.
Table 57. scp endpoint options
| Name | Default | Description |
|---|---|---|
username
|
null
| Specifies the user name to use to log into the remote file system. |
password
|
null
| Specifies the password to use to log into the remote file system. |
knownHostsFile
|
null
| Sets the known_hosts file so that the scp
endpoint can perform host key verification. |
strictHostKeyChecking
|
no
| Specifies whether to use strict host key checking. |
chmod
|
null
| Enables you to set chmod on the specified stored file; for example,
chmod=664. |
Currently, the Jsch component supports only a producer, that is it can only copy files to a remote host. This is so because the SCP protocol does not provide the capability to scan (list) the contents of a directory. So a polling consumer cannot watch for changes and trigger events on them.
However, it is possible to use the Jsch component in sink mode for a one-time copy from a remote host using a ConsumerTemplate (see File). If your application requires secure transfers or continuous monitoring of a directory on a remote host, use the sftp protocol instead (see File).