Class SCPClient


  • public class SCPClient
    extends java.lang.Object
    A very basic SCPClient that can be used to copy files from/to the SSH-2 server. On the server side, the "scp" program must be in the PATH.

    This scp client is thread safe - you can download (and upload) different sets of files concurrently without any troubles. The SCPClient is actually mapping every request to a distinct Session.

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void get​(java.lang.String[] remoteFiles, java.lang.String localTargetDirectory)
      Download a set of files from the remote server to a local directory.
      void get​(java.lang.String remoteFile, java.io.OutputStream target)
      Download a file from the remote server and pipe its contents into an OutputStream.
      void get​(java.lang.String remoteFile, java.lang.String localTargetDirectory)
      Download a file from the remote server to a local directory.
      void put​(byte[] data, java.lang.String remoteFileName, java.lang.String remoteTargetDirectory)
      Create a remote file and copy the contents of the passed byte array into it.
      void put​(byte[] data, java.lang.String remoteFileName, java.lang.String remoteTargetDirectory, java.lang.String mode)
      Create a remote file and copy the contents of the passed byte array into it.
      void put​(java.lang.String[] localFiles, java.lang.String remoteTargetDirectory)
      Copy a set of local files to a remote directory, uses mode 0600 when creating files on the remote side.
      void put​(java.lang.String[] localFiles, java.lang.String[] remoteFiles, java.lang.String remoteTargetDirectory, java.lang.String mode)  
      void put​(java.lang.String[] localFiles, java.lang.String remoteTargetDirectory, java.lang.String mode)
      Copy a set of local files to a remote directory, uses the specified mode when creating the files on the remote side.
      void put​(java.lang.String localFile, java.lang.String remoteTargetDirectory)
      Copy a local file to a remote directory, uses mode 0600 when creating the file on the remote side.
      void put​(java.lang.String localFile, java.lang.String remoteTargetDirectory, java.lang.String mode)
      Copy a local file to a remote directory, uses the specified mode when creating the file on the remote side.
      void put​(java.lang.String localFile, java.lang.String remoteFileName, java.lang.String remoteTargetDirectory, java.lang.String mode)
      Copy a local file to a remote directory, uses the specified mode and remote filename when creating the file on the remote side.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • SCPClient

        public SCPClient​(Connection conn)
    • Method Detail

      • put

        public void put​(java.lang.String localFile,
                        java.lang.String remoteTargetDirectory)
                 throws java.io.IOException
        Copy a local file to a remote directory, uses mode 0600 when creating the file on the remote side.
        Parameters:
        localFile - Path and name of local file.
        remoteTargetDirectory - Remote target directory. Use an empty string to specify the default directory.
        Throws:
        java.io.IOException
      • put

        public void put​(java.lang.String[] localFiles,
                        java.lang.String remoteTargetDirectory)
                 throws java.io.IOException
        Copy a set of local files to a remote directory, uses mode 0600 when creating files on the remote side.
        Parameters:
        localFiles - Paths and names of local file names.
        remoteTargetDirectory - Remote target directory. Use an empty string to specify the default directory.
        Throws:
        java.io.IOException
      • put

        public void put​(java.lang.String localFile,
                        java.lang.String remoteTargetDirectory,
                        java.lang.String mode)
                 throws java.io.IOException
        Copy a local file to a remote directory, uses the specified mode when creating the file on the remote side.
        Parameters:
        localFile - Path and name of local file.
        remoteTargetDirectory - Remote target directory. Use an empty string to specify the default directory.
        mode - a four digit string (e.g., 0644, see "man chmod", "man open")
        Throws:
        java.io.IOException
      • put

        public void put​(java.lang.String localFile,
                        java.lang.String remoteFileName,
                        java.lang.String remoteTargetDirectory,
                        java.lang.String mode)
                 throws java.io.IOException
        Copy a local file to a remote directory, uses the specified mode and remote filename when creating the file on the remote side.
        Parameters:
        localFile - Path and name of local file.
        remoteFileName - The name of the file which will be created in the remote target directory.
        remoteTargetDirectory - Remote target directory. Use an empty string to specify the default directory.
        mode - a four digit string (e.g., 0644, see "man chmod", "man open")
        Throws:
        java.io.IOException
      • put

        public void put​(byte[] data,
                        java.lang.String remoteFileName,
                        java.lang.String remoteTargetDirectory)
                 throws java.io.IOException
        Create a remote file and copy the contents of the passed byte array into it. Uses mode 0600 for creating the remote file.
        Parameters:
        data - the data to be copied into the remote file.
        remoteFileName - The name of the file which will be created in the remote target directory.
        remoteTargetDirectory - Remote target directory. Use an empty string to specify the default directory.
        Throws:
        java.io.IOException
      • put

        public void put​(byte[] data,
                        java.lang.String remoteFileName,
                        java.lang.String remoteTargetDirectory,
                        java.lang.String mode)
                 throws java.io.IOException
        Create a remote file and copy the contents of the passed byte array into it. The method use the specified mode when creating the file on the remote side.
        Parameters:
        data - the data to be copied into the remote file.
        remoteFileName - The name of the file which will be created in the remote target directory.
        remoteTargetDirectory - Remote target directory. Use an empty string to specify the default directory.
        mode - a four digit string (e.g., 0644, see "man chmod", "man open")
        Throws:
        java.io.IOException
      • put

        public void put​(java.lang.String[] localFiles,
                        java.lang.String remoteTargetDirectory,
                        java.lang.String mode)
                 throws java.io.IOException
        Copy a set of local files to a remote directory, uses the specified mode when creating the files on the remote side.
        Parameters:
        localFiles - Paths and names of the local files.
        remoteTargetDirectory - Remote target directory. Use an empty string to specify the default directory.
        mode - a four digit string (e.g., 0644, see "man chmod", "man open")
        Throws:
        java.io.IOException
      • put

        public void put​(java.lang.String[] localFiles,
                        java.lang.String[] remoteFiles,
                        java.lang.String remoteTargetDirectory,
                        java.lang.String mode)
                 throws java.io.IOException
        Throws:
        java.io.IOException
      • get

        public void get​(java.lang.String remoteFile,
                        java.lang.String localTargetDirectory)
                 throws java.io.IOException
        Download a file from the remote server to a local directory.
        Parameters:
        remoteFile - Path and name of the remote file.
        localTargetDirectory - Local directory to put the downloaded file.
        Throws:
        java.io.IOException
      • get

        public void get​(java.lang.String remoteFile,
                        java.io.OutputStream target)
                 throws java.io.IOException
        Download a file from the remote server and pipe its contents into an OutputStream. Please note that, to enable flexible usage of this method, the OutputStream will not be closed nor flushed.
        Parameters:
        remoteFile - Path and name of the remote file.
        target - OutputStream where the contents of the file will be sent to.
        Throws:
        java.io.IOException
      • get

        public void get​(java.lang.String[] remoteFiles,
                        java.lang.String localTargetDirectory)
                 throws java.io.IOException
        Download a set of files from the remote server to a local directory.
        Parameters:
        remoteFiles - Paths and names of the remote files.
        localTargetDirectory - Local directory to put the downloaded files.
        Throws:
        java.io.IOException