Package org.apache.tools.ant.taskdefs.optional.ssh

## Class Scp

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.Task
    - - org.apache.tools.ant.taskdefs.optional.ssh.SSHBase
      - - org.apache.tools.ant.taskdefs.optional.ssh.Scp

- All Implemented Interfaces:
    `java.lang.Cloneable`, `LogListener`

      public class Scp
      extends SSHBase

  Ant task for sending files to remote machine over ssh/scp.
  Since:
    Ant 1.6

- - ### Field Summary

    - ### Fields inherited from class org.apache.tools.ant.Task

      `target, taskName, taskType, wrapper`

    - ### Fields inherited from class org.apache.tools.ant.ProjectComponent

      `description, location, project`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Scp()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `add​(ResourceCollection res)` | Adds a ResourceCollection of local files to transfer to remote host.
    `void` | `addFileset​(FileSet set)` | Adds a FileSet transfer to remote host.
    `void` | `execute()` | Execute this task.
    `void` | `init()` | Initialize this task.
    `void` | `setAllowFilesToEscapeDest​(boolean b)` | Whether to allow the retrieved files or directories to be outside of the dest directory.
    `void` | `setCompressed​(boolean compressed)` | Sets flag to determine if compression should be used for the copy.
    `void` | `setDirMode​(java.lang.String dirMode)` | Set the dir mode, defaults to "755".
    `void` | `setFile​(java.lang.String aFromUri)` | Sets the file to be transferred.
    `void` | `setFileMode​(java.lang.String fileMode)` | Set the file mode, defaults to "644".
    `void` | `setLocalFile​(java.lang.String aFromUri)` | Similar to `setFile` but explicitly states that the file is a local file.
    `void` | `setLocalTodir​(java.lang.String aToUri)` | Similar to `setTodir` but explicitly states that the directory is a local.
    `void` | `setLocalTofile​(java.lang.String aToUri)` | Changes the file name to the given name while receiving it, only useful if receiving a single file.
    `void` | `setPreservelastmodified​(boolean yesOrNo)` | Sets flag to determine if file timestamp is to be preserved during copy.
    `void` | `setRemoteFile​(java.lang.String aFromUri)` | Similar to `setFile` but explicitly states that the file is a remote file.
    `void` | `setRemoteTodir​(java.lang.String aToUri)` | Similar to `setTodir` but explicitly states that the directory is a remote.
    `void` | `setRemoteTofile​(java.lang.String aToUri)` | Changes the file name to the given name while sending it, only useful if sending a single file.
    `void` | `setSftp​(boolean yesOrNo)` | Setting this to true to use sftp protocol.
    `void` | `setTodir​(java.lang.String aToUri)` | Sets the location where files will be transferred to.

    - ### Methods inherited from class org.apache.tools.ant.taskdefs.optional.ssh.SSHBase

      `addConfiguredAdditionalConfig, getFailonerror, getHost, getPort, getServerAliveCountMax, getServerAliveIntervalSeconds, getSshConfig, getUserInfo, getVerbose, loadSshConfig, openSession, setFailonerror, setHost, setKeyfile, setKnownhosts, setPassphrase, setPassword, setPort, setServerAliveCountMax, setServerAliveIntervalSeconds, setSshConfig, setTrust, setUsername, setVerbose`

    - ### Methods inherited from class org.apache.tools.ant.Task

      `bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType`

    - ### Methods inherited from class org.apache.tools.ant.ProjectComponent

      `clone, getDescription, getLocation, getProject, setDescription, setLocation, setProject`

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.apache.tools.ant.taskdefs.optional.ssh.LogListener

      `log`

- - ### Constructor Detail

    - #### Scp

          public Scp()

  - ### Method Detail

    - #### setFile

          public void setFile​(java.lang.String aFromUri)

      Sets the file to be transferred. This can either be a remote file or a local file. Remote files take the form:

      user:password@host:/directory/path/file.example

      Files to transfer can also include a wildcard to include all files in a remote directory. For example:

      user:password@host:/directory/path/*

      Parameters:
        `aFromUri` - a string representing the file to transfer.

    - #### setTodir

          public void setTodir​(java.lang.String aToUri)

      Sets the location where files will be transferred to. This can either be a remote directory or a local directory. Remote directories take the form of:

      user:password@host:/directory/path/

      This parameter is required.
      Parameters:
        `aToUri` - a string representing the target of the copy.

    - #### setLocalFile

          public void setLocalFile​(java.lang.String aFromUri)

      Similar to `setFile` but explicitly states that the file is a local file. This is the only way to specify a local file with a @ character.
      Parameters:
        `aFromUri` - a string representing the source of the copy.
      Since:
        Ant 1.6.2

    - #### setRemoteFile

          public void setRemoteFile​(java.lang.String aFromUri)

      Similar to `setFile` but explicitly states that the file is a remote file.
      Parameters:
        `aFromUri` - a string representing the source of the copy.
      Since:
        Ant 1.6.2

    - #### setCompressed

          public void setCompressed​(boolean compressed)

      Sets flag to determine if compression should be used for the copy.
      Parameters:
        `compressed` - boolean
      Since:
        Ant 1.9.8

    - #### setLocalTodir

          public void setLocalTodir​(java.lang.String aToUri)

      Similar to `setTodir` but explicitly states that the directory is a local. This is the only way to specify a local directory with a @ character.
      Parameters:
        `aToUri` - a string representing the target of the copy.
      Since:
        Ant 1.6.2

    - #### setPreservelastmodified

          public void setPreservelastmodified​(boolean yesOrNo)

      Sets flag to determine if file timestamp is to be preserved during copy.
      Parameters:
        `yesOrNo` - boolean
      Since:
        Ant 1.8.0

    - #### setRemoteTodir

          public void setRemoteTodir​(java.lang.String aToUri)

      Similar to `setTodir` but explicitly states that the directory is a remote.
      Parameters:
        `aToUri` - a string representing the target of the copy.
      Since:
        Ant 1.6.2

    - #### setLocalTofile

          public void setLocalTofile​(java.lang.String aToUri)

      Changes the file name to the given name while receiving it, only useful if receiving a single file.
      Parameters:
        `aToUri` - a string representing the target of the copy.
      Since:
        Ant 1.6.2

    - #### setRemoteTofile

          public void setRemoteTofile​(java.lang.String aToUri)

      Changes the file name to the given name while sending it, only useful if sending a single file.
      Parameters:
        `aToUri` - a string representing the target of the copy.
      Since:
        Ant 1.6.2

    - #### setSftp

          public void setSftp​(boolean yesOrNo)

      Setting this to true to use sftp protocol.
      Parameters:
        `yesOrNo` - if true sftp protocol will be used.

    - #### setFileMode

          public void setFileMode​(java.lang.String fileMode)

      Set the file mode, defaults to "644".
      Parameters:
        `fileMode` - String
      Since:
        Ant 1.9.5

    - #### setDirMode

          public void setDirMode​(java.lang.String dirMode)

      Set the dir mode, defaults to "755".
      Parameters:
        `dirMode` - String
      Since:
        Ant 1.9.5

    - #### setAllowFilesToEscapeDest

          public void setAllowFilesToEscapeDest​(boolean b)

      Whether to allow the retrieved files or directories to be outside of the dest directory.
      Parameters:
        `b` - the flag
      Since:
        Ant 1.10.18

    - #### addFileset

          public void addFileset​(FileSet set)

      Adds a FileSet transfer to remote host. NOTE: Either addFileSet() or setFile() are required. But, not both.
      Parameters:
        `set` - FileSet to send to remote host.

    - #### add

          public void add​(ResourceCollection res)

      Adds a ResourceCollection of local files to transfer to remote host.
      Parameters:
        `res` - ResourceCollection to send to remote host.
      Since:
        Ant 1.9.7

    - #### init

          public void init()
                    throws BuildException

      Initialize this task.
      Overrides:
        `init` in class `SSHBase`
      Throws:
        `BuildException` - on error

    - #### execute

          public void execute()
                       throws BuildException

      Execute this task.
      Overrides:
        `execute` in class `Task`
      Throws:
        `BuildException` - on error