Interface ScpTargetStreamResolver

All Known Implementing Classes:
LocalFileScpTargetStreamResolver

public interface ScpTargetStreamResolver
  • Method Details

    • resolveTargetStream

      OutputStream resolveTargetStream(Session session, String name, long length, Set<PosixFilePermission> perms, OpenOption... options) throws IOException
      Called when receiving a file in order to obtain an output stream for the incoming data
      Parameters:
      session - The associated Session
      name - File name as received from remote site
      length - Number of bytes expected to receive
      perms - The Set of PosixFilePermission expected
      options - The OpenOptions to use - may be null/empty
      Returns:
      The OutputStream to write the incoming data
      Throws:
      IOException - If failed to create the stream
    • closeTargetStream

      default void closeTargetStream(Session session, String name, long length, Set<PosixFilePermission> perms, OutputStream stream) throws IOException
      Called when target stream received from resolveTargetStream call is no longer needed since copy is successfully completed.
      Parameters:
      session - The associated Session
      name - File name as received from remote site
      length - Number of bytes expected to receive
      perms - The Set of PosixFilePermission expected
      stream - The OutputStream to close
      Throws:
      IOException - If failed to close the stream - Note: stream will be closed regardless of whether this method throws an exception or not.
    • getEventListenerFilePath

      Path getEventListenerFilePath()
      Returns:
      The Path to use when invoking the ScpTransferEventListener
    • postProcessReceivedData

      void postProcessReceivedData(String name, boolean preserve, Set<PosixFilePermission> perms, ScpTimestampCommandDetails time) throws IOException
      Called after successful reception of the data (and after closing the stream)
      Parameters:
      name - File name as received from remote site
      preserve - If true then the resolver should attempt to preserve the specified permissions and timestamp
      perms - The Set of PosixFilePermission expected
      time - If not null then the required timestamp(s) on the incoming data
      Throws:
      IOException - If failed to post-process the incoming data