Interface SftpEventListener

  • All Superinterfaces:
    java.util.EventListener, SshdEventListener
    All Known Implementing Classes:
    AbstractSftpEventListenerAdapter

    public interface SftpEventListener
    extends SshdEventListener
    Can be used register for SFTP events. Note: it does not expose the entire set of available SFTP commands and responses (e.g., no reports for initialization, extensions, parameters re-negotiation, etc...);
    • Method Summary

      All Methods Static Methods Instance Methods Default Methods 
      Modifier and Type Method Description
      default void blocked​(ServerSession session, java.lang.String remoteHandle, FileHandle localHandle, long offset, long length, int mask, java.lang.Throwable thrown)
      Called after blocking a file section
      default void blocking​(ServerSession session, java.lang.String remoteHandle, FileHandle localHandle, long offset, long length, int mask)
      Called prior to blocking a file section
      default void closed​(ServerSession session, java.lang.String remoteHandle, Handle localHandle, java.lang.Throwable thrown)
      Specified file / directory has been closed
      default void closing​(ServerSession session, java.lang.String remoteHandle, Handle localHandle)
      Specified file / directory about to be closed
      default void created​(ServerSession session, java.nio.file.Path path, java.util.Map<java.lang.String,​?> attrs, java.lang.Throwable thrown)
      Called after creating a directory
      default void creating​(ServerSession session, java.nio.file.Path path, java.util.Map<java.lang.String,​?> attrs)
      Called prior to creating a directory
      default void destroying​(ServerSession session)
      Called when subsystem is destroyed since it was closed
      default void exiting​(ServerSession session, Handle handle)
      Called when subsystem is exiting due to being destroyed
      default void initialized​(ServerSession session, int version)
      Called when the SFTP protocol has been initialized
      default void linked​(ServerSession session, java.nio.file.Path source, java.nio.file.Path target, boolean symLink, java.lang.Throwable thrown)
      Called after creating a link
      default void linking​(ServerSession session, java.nio.file.Path source, java.nio.file.Path target, boolean symLink)
      Called prior to creating a link
      default void modifiedAttributes​(ServerSession session, java.nio.file.Path path, java.util.Map<java.lang.String,​?> attrs, java.lang.Throwable thrown)
      Called after modifying the attributes of a file / directory
      default void modifyingAttributes​(ServerSession session, java.nio.file.Path path, java.util.Map<java.lang.String,​?> attrs)
      Called prior to modifying the attributes of a file / directory
      default void moved​(ServerSession session, java.nio.file.Path srcPath, java.nio.file.Path dstPath, java.util.Collection<java.nio.file.CopyOption> opts, java.lang.Throwable thrown)
      Called after renaming a file / directory
      default void moving​(ServerSession session, java.nio.file.Path srcPath, java.nio.file.Path dstPath, java.util.Collection<java.nio.file.CopyOption> opts)
      Called prior to renaming a file / directory
      default void open​(ServerSession session, java.lang.String remoteHandle, Handle localHandle)
      Specified file / directory has been opened
      default void openFailed​(ServerSession session, java.lang.String remotePath, java.nio.file.Path localPath, boolean isDirectory, java.lang.Throwable thrown)
      Specified file / directory could not be opened - Note: this call may occur without opening(ServerSession, String, Handle) ever having been called
      default void opening​(ServerSession session, java.lang.String remoteHandle, Handle localHandle)
      Specified file / directory is being opened
      default void read​(ServerSession session, java.lang.String remoteHandle, DirectoryHandle localHandle, java.util.Map<java.lang.String,​java.nio.file.Path> entries)
      Result of reading entries from a directory - Note: it may be a partial result if the directory contains more entries than can be accommodated in the response
      default void read​(ServerSession session, java.lang.String remoteHandle, FileHandle localHandle, long offset, byte[] data, int dataOffset, int dataLen, int readLen, java.lang.Throwable thrown)
      Result of reading from a file
      default void reading​(ServerSession session, java.lang.String remoteHandle, FileHandle localHandle, long offset, byte[] data, int dataOffset, int dataLen)
      Preparing to read from a file
      default void removed​(ServerSession session, java.nio.file.Path path, boolean isDirectory, java.lang.Throwable thrown)
      Called after a file has been removed
      default void removing​(ServerSession session, java.nio.file.Path path, boolean isDirectory)
      Called prior to removing a file
      default void unblocked​(ServerSession session, java.lang.String remoteHandle, FileHandle localHandle, long offset, long length, java.lang.Throwable thrown)
      Called prior to un-blocking a file section
      default void unblocking​(ServerSession session, java.lang.String remoteHandle, FileHandle localHandle, long offset, long length)
      Called prior to un-blocking a file section
      static <L extends SftpEventListener>
      L
      validateListener​(L listener)  
      default void writing​(ServerSession session, java.lang.String remoteHandle, FileHandle localHandle, long offset, byte[] data, int dataOffset, int dataLen)
      Preparing to write to file
      default void written​(ServerSession session, java.lang.String remoteHandle, FileHandle localHandle, long offset, byte[] data, int dataOffset, int dataLen, java.lang.Throwable thrown)
      Finished to writing to file
    • Method Detail

      • initialized

        default void initialized​(ServerSession session,
                                 int version)
                          throws java.io.IOException
        Called when the SFTP protocol has been initialized
        Parameters:
        session - The ServerSession through which the request was handled
        version - The negotiated SFTP version
        Throws:
        java.io.IOException - If failed to handle the call
      • exiting

        default void exiting​(ServerSession session,
                             Handle handle)
                      throws java.io.IOException
        Called when subsystem is exiting due to being destroyed
        Parameters:
        session - The associated ServerSession
        handle - The file / directory Handle being closed due to the exit
        Throws:
        java.io.IOException - If failed to handle the call
      • destroying

        default void destroying​(ServerSession session)
                         throws java.io.IOException
        Called when subsystem is destroyed since it was closed
        Parameters:
        session - The associated ServerSession
        Throws:
        java.io.IOException - If failed to handle the call
      • opening

        default void opening​(ServerSession session,
                             java.lang.String remoteHandle,
                             Handle localHandle)
                      throws java.io.IOException
        Specified file / directory is being opened
        Parameters:
        session - The ServerSession through which the request was handled
        remoteHandle - The (opaque) assigned handle for the file / directory
        localHandle - The associated file / directory Handle
        Throws:
        java.io.IOException - If failed to handle the call
      • open

        default void open​(ServerSession session,
                          java.lang.String remoteHandle,
                          Handle localHandle)
                   throws java.io.IOException
        Specified file / directory has been opened
        Parameters:
        session - The ServerSession through which the request was handled
        remoteHandle - The (opaque) assigned handle for the file / directory
        localHandle - The associated file / directory Handle
        Throws:
        java.io.IOException - If failed to handle the call
      • openFailed

        default void openFailed​(ServerSession session,
                                java.lang.String remotePath,
                                java.nio.file.Path localPath,
                                boolean isDirectory,
                                java.lang.Throwable thrown)
                         throws java.io.IOException
        Specified file / directory could not be opened - Note: this call may occur without opening(ServerSession, String, Handle) ever having been called
        Parameters:
        session - The ServerSession through which the request was handled
        remotePath - The path that was specified in the command
        localPath - The matching resolved local path
        isDirectory - Whether this was a folder or a file
        thrown - Non-null reason for the failure
        Throws:
        java.io.IOException - If failed to handle the call
      • read

        default void read​(ServerSession session,
                          java.lang.String remoteHandle,
                          DirectoryHandle localHandle,
                          java.util.Map<java.lang.String,​java.nio.file.Path> entries)
                   throws java.io.IOException
        Result of reading entries from a directory - Note: it may be a partial result if the directory contains more entries than can be accommodated in the response
        Parameters:
        session - The ServerSession through which the request was handled
        remoteHandle - The (opaque) assigned handle for the directory
        localHandle - The associated DirectoryHandle
        entries - A Map of the listed entries - key = short name, value = Path of the sub-entry
        Throws:
        java.io.IOException - If failed to handle the call
      • reading

        default void reading​(ServerSession session,
                             java.lang.String remoteHandle,
                             FileHandle localHandle,
                             long offset,
                             byte[] data,
                             int dataOffset,
                             int dataLen)
                      throws java.io.IOException
        Preparing to read from a file
        Parameters:
        session - The ServerSession through which the request was handled
        remoteHandle - The (opaque) assigned handle for the file
        localHandle - The associated FileHandle
        offset - Offset in file from which to read
        data - Buffer holding the read data
        dataOffset - Offset of read data in buffer
        dataLen - Requested read length
        Throws:
        java.io.IOException - If failed to handle the call
      • read

        default void read​(ServerSession session,
                          java.lang.String remoteHandle,
                          FileHandle localHandle,
                          long offset,
                          byte[] data,
                          int dataOffset,
                          int dataLen,
                          int readLen,
                          java.lang.Throwable thrown)
                   throws java.io.IOException
        Result of reading from a file
        Parameters:
        session - The ServerSession through which the request was handled
        remoteHandle - The (opaque) assigned handle for the file
        localHandle - The associated FileHandle
        offset - Offset in file from which to read
        data - Buffer holding the read data
        dataOffset - Offset of read data in buffer
        dataLen - Requested read length
        readLen - Actual read length - negative if thrown exception provided
        thrown - Non-null if read failed due to this exception
        Throws:
        java.io.IOException - If failed to handle the call
      • writing

        default void writing​(ServerSession session,
                             java.lang.String remoteHandle,
                             FileHandle localHandle,
                             long offset,
                             byte[] data,
                             int dataOffset,
                             int dataLen)
                      throws java.io.IOException
        Preparing to write to file
        Parameters:
        session - The ServerSession through which the request was handled
        remoteHandle - The (opaque) assigned handle for the file
        localHandle - The associated FileHandle
        offset - Offset in file to which to write
        data - Buffer holding the written data
        dataOffset - Offset of write data in buffer
        dataLen - Requested write length
        Throws:
        java.io.IOException - If failed to handle the call
      • written

        default void written​(ServerSession session,
                             java.lang.String remoteHandle,
                             FileHandle localHandle,
                             long offset,
                             byte[] data,
                             int dataOffset,
                             int dataLen,
                             java.lang.Throwable thrown)
                      throws java.io.IOException
        Finished to writing to file
        Parameters:
        session - The ServerSession through which the request was handled
        remoteHandle - The (opaque) assigned handle for the file
        localHandle - The associated FileHandle
        offset - Offset in file to which to write
        data - Buffer holding the written data
        dataOffset - Offset of write data in buffer
        dataLen - Requested write length
        thrown - The reason for failing to write - null if successful
        Throws:
        java.io.IOException - If failed to handle the call
      • blocking

        default void blocking​(ServerSession session,
                              java.lang.String remoteHandle,
                              FileHandle localHandle,
                              long offset,
                              long length,
                              int mask)
                       throws java.io.IOException
        Called prior to blocking a file section
        Parameters:
        session - The ServerSession through which the request was handled
        remoteHandle - The (opaque) assigned handle for the file
        localHandle - The associated FileHandle
        offset - Offset in file for locking
        length - Section size for locking
        mask - Lock mask flags - see SSH_FXP_BLOCK message
        Throws:
        java.io.IOException - If failed to handle the call
        See Also:
        blocked(ServerSession, String, FileHandle, long, long, int, Throwable)
      • blocked

        default void blocked​(ServerSession session,
                             java.lang.String remoteHandle,
                             FileHandle localHandle,
                             long offset,
                             long length,
                             int mask,
                             java.lang.Throwable thrown)
                      throws java.io.IOException
        Called after blocking a file section
        Parameters:
        session - The ServerSession through which the request was handled
        remoteHandle - The (opaque) assigned handle for the file
        localHandle - The associated FileHandle
        offset - Offset in file for locking
        length - Section size for locking
        mask - Lock mask flags - see SSH_FXP_BLOCK message
        thrown - If not-null then the reason for the failure to execute
        Throws:
        java.io.IOException - If failed to handle the call
      • unblocking

        default void unblocking​(ServerSession session,
                                java.lang.String remoteHandle,
                                FileHandle localHandle,
                                long offset,
                                long length)
                         throws java.io.IOException
        Called prior to un-blocking a file section
        Parameters:
        session - The ServerSession through which the request was handled
        remoteHandle - The (opaque) assigned handle for the file
        localHandle - The associated FileHandle
        offset - Offset in file for un-locking
        length - Section size for un-locking
        Throws:
        java.io.IOException - If failed to handle the call
      • unblocked

        default void unblocked​(ServerSession session,
                               java.lang.String remoteHandle,
                               FileHandle localHandle,
                               long offset,
                               long length,
                               java.lang.Throwable thrown)
                        throws java.io.IOException
        Called prior to un-blocking a file section
        Parameters:
        session - The ServerSession through which the request was handled
        remoteHandle - The (opaque) assigned handle for the file
        localHandle - The associated FileHandle
        offset - Offset in file for un-locking
        length - Section size for un-locking
        thrown - If not-null then the reason for the failure to execute
        Throws:
        java.io.IOException - If failed to handle the call
      • closing

        default void closing​(ServerSession session,
                             java.lang.String remoteHandle,
                             Handle localHandle)
                      throws java.io.IOException
        Specified file / directory about to be closed
        Parameters:
        session - The ServerSession through which the request was handled
        remoteHandle - The (opaque) assigned handle for the file / directory
        localHandle - The associated file / directory Handle
        Throws:
        java.io.IOException - If failed to handle the call
      • closed

        default void closed​(ServerSession session,
                            java.lang.String remoteHandle,
                            Handle localHandle,
                            java.lang.Throwable thrown)
                     throws java.io.IOException
        Specified file / directory has been closed
        Parameters:
        session - The ServerSession through which the request was handled
        remoteHandle - The (opaque) assigned handle for the file / directory
        localHandle - The associated file / directory Handle
        thrown - If not-null then the reason for the failure to execute
        Throws:
        java.io.IOException - If failed to handle the call
      • creating

        default void creating​(ServerSession session,
                              java.nio.file.Path path,
                              java.util.Map<java.lang.String,​?> attrs)
                       throws java.io.IOException
        Called prior to creating a directory
        Parameters:
        session - The ServerSession through which the request was handled
        path - Directory Path to be created
        attrs - Requested associated attributes to set
        Throws:
        java.io.IOException - If failed to handle the call
        See Also:
        created(ServerSession, Path, Map, Throwable)
      • created

        default void created​(ServerSession session,
                             java.nio.file.Path path,
                             java.util.Map<java.lang.String,​?> attrs,
                             java.lang.Throwable thrown)
                      throws java.io.IOException
        Called after creating a directory
        Parameters:
        session - The ServerSession through which the request was handled
        path - Directory Path to be created
        attrs - Requested associated attributes to set
        thrown - If not-null then the reason for the failure to execute
        Throws:
        java.io.IOException - If failed to handle the call
      • moving

        default void moving​(ServerSession session,
                            java.nio.file.Path srcPath,
                            java.nio.file.Path dstPath,
                            java.util.Collection<java.nio.file.CopyOption> opts)
                     throws java.io.IOException
        Called prior to renaming a file / directory
        Parameters:
        session - The ServerSession through which the request was handled
        srcPath - The source Path
        dstPath - The target Path
        opts - The resolved renaming options
        Throws:
        java.io.IOException - If failed to handle the call
        See Also:
        moved(ServerSession, Path, Path, Collection, Throwable)
      • moved

        default void moved​(ServerSession session,
                           java.nio.file.Path srcPath,
                           java.nio.file.Path dstPath,
                           java.util.Collection<java.nio.file.CopyOption> opts,
                           java.lang.Throwable thrown)
                    throws java.io.IOException
        Called after renaming a file / directory
        Parameters:
        session - The ServerSession through which the request was handled
        srcPath - The source Path
        dstPath - The target Path
        opts - The resolved renaming options
        thrown - If not-null then the reason for the failure to execute
        Throws:
        java.io.IOException - If failed to handle the call
      • removing

        default void removing​(ServerSession session,
                              java.nio.file.Path path,
                              boolean isDirectory)
                       throws java.io.IOException
        Called prior to removing a file
        Parameters:
        session - The ServerSession through which the request was handled
        path - The Path about to be removed
        isDirectory - Whether this is a folder or a file
        Throws:
        java.io.IOException - If failed to handle the call
        See Also:
        removed(ServerSession, Path, boolean, Throwable)
      • removed

        default void removed​(ServerSession session,
                             java.nio.file.Path path,
                             boolean isDirectory,
                             java.lang.Throwable thrown)
                      throws java.io.IOException
        Called after a file has been removed
        Parameters:
        session - The ServerSession through which the request was handled
        path - The Path to be removed
        isDirectory - Whether this was a folder or a file
        thrown - If not-null then the reason for the failure to execute
        Throws:
        java.io.IOException - If failed to handle the call
      • linking

        default void linking​(ServerSession session,
                             java.nio.file.Path source,
                             java.nio.file.Path target,
                             boolean symLink)
                      throws java.io.IOException
        Called prior to creating a link
        Parameters:
        session - The ServerSession through which the request was handled
        source - The source Path
        target - The target Path
        symLink - true = symbolic link
        Throws:
        java.io.IOException - If failed to handle the call
        See Also:
        linked(ServerSession, Path, Path, boolean, Throwable)
      • linked

        default void linked​(ServerSession session,
                            java.nio.file.Path source,
                            java.nio.file.Path target,
                            boolean symLink,
                            java.lang.Throwable thrown)
                     throws java.io.IOException
        Called after creating a link
        Parameters:
        session - The ServerSession through which the request was handled
        source - The source Path
        target - The target Path
        symLink - true = symbolic link
        thrown - If not-null then the reason for the failure to execute
        Throws:
        java.io.IOException - If failed to handle the call
      • modifyingAttributes

        default void modifyingAttributes​(ServerSession session,
                                         java.nio.file.Path path,
                                         java.util.Map<java.lang.String,​?> attrs)
                                  throws java.io.IOException
        Called prior to modifying the attributes of a file / directory
        Parameters:
        session - The ServerSession through which the request was handled
        path - The file / directory Path to be modified
        attrs - The attributes Map - names and values depend on the O/S, view, type, etc...
        Throws:
        java.io.IOException - If failed to handle the call
        See Also:
        modifiedAttributes(ServerSession, Path, Map, Throwable)
      • modifiedAttributes

        default void modifiedAttributes​(ServerSession session,
                                        java.nio.file.Path path,
                                        java.util.Map<java.lang.String,​?> attrs,
                                        java.lang.Throwable thrown)
                                 throws java.io.IOException
        Called after modifying the attributes of a file / directory
        Parameters:
        session - The ServerSession through which the request was handled
        path - The file / directory Path to be modified
        attrs - The attributes Map - names and values depend on the O/S, view, type, etc...
        thrown - If not-null then the reason for the failure to execute
        Throws:
        java.io.IOException - If failed to handle the call
      • validateListener

        static <L extends SftpEventListener> L validateListener​(L listener)