Class DefaultSftpClient
java.lang.Object
org.apache.sshd.common.util.logging.AbstractLoggingBean
org.apache.sshd.client.subsystem.AbstractSubsystemClient
org.apache.sshd.sftp.client.impl.AbstractSftpClient
org.apache.sshd.sftp.client.impl.DefaultSftpClient
- All Implemented Interfaces:
Closeable, AutoCloseable, Channel, ClientChannelHolder, ClientSessionHolder, SubsystemClient, ChannelHolder, NamedResource, SessionContextHolder, SessionHolder<ClientSession>, FullAccessSftpClient, RawSftpClient, SftpClient, SftpErrorDataHandler
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from interface SftpClient
SftpClient.Attribute, SftpClient.Attributes, SftpClient.CloseableHandle, SftpClient.CopyMode, SftpClient.DirEntry, SftpClient.Handle, SftpClient.OpenMode -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final ChannelSubsystemprivate final ClientSessionprivate final AtomicBooleanprivate final AtomicIntegerprivate final NavigableMap<String, byte[]> private final NavigableMap<String, byte[]> private SftpMessageprivate Charsetprivate final Bufferprivate final AtomicIntegerFields inherited from class AbstractSftpClient
errorDataHandler, INIT_COMMAND_SIZE, SFTP_CLIENT_CMD_TIMEOUTFields inherited from class AbstractLoggingBean
logFields inherited from interface NamedResource
BY_NAME_COMPARATOR, NAME_EXTRACTORFields inherited from interface SftpClient
DEFAULT_CHANNEL_MODES, EMPTY_DIR_ENTRIES, IO_BUFFER_SIZE, MIN_BUFFER_SIZE, MIN_READ_BUFFER_SIZE, MIN_WRITE_BUFFER_SIZEFields inherited from interface SftpErrorDataHandler
EMPTY -
Constructor Summary
ConstructorsConstructorDescriptionDefaultSftpClient(ClientSession clientSession, SftpVersionSelector initialVersionSelector, SftpErrorDataHandler errorDataHandler) -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()protected ChannelSubsystemcreateSftpChannelSubsystem(ClientSession clientSession) protected intdata(byte[] buf, int start, int len) Receive binary data from server main streamNavigableMap<String, byte[]> intprotected voidhandleInitResponse(Buffer buffer) protected voidinit(ClientSession session, SftpVersionSelector initialVersionSelector, Duration initializationTimeout) booleanbooleanisOpen()intnegotiateVersion(SftpVersionSelector selector) protected voidProcess an SFTP packetreceive(int id) receive(int id, long idleTimeout) protected booleanRead SFTP packets from bufferintvoidsetNameDecodingCharset(Charset nameDecodingCharset) protected BufferwaitForInitResponse(Duration initializationTimeout) Methods inherited from class AbstractSftpClient
canonicalPath, checkAttributes, checkAttributesResponse, checkCommandStatus, checkDataResponse, checkDirResponse, checkHandle, checkHandleResponse, checkOneName, checkOneNameResponse, checkResponseStatus, checkResponseStatus, close, errorData, getChannel, getExtension, getExtension, getParsedServerExtensions, getParsedServerExtensions, getReadBufferSize, getReferencedName, getWriteBufferSize, handleUnexpectedAttributesPacket, handleUnexpectedHandlePacket, handleUnexpectedPacket, handleUnknownDataPacket, handleUnknownDirListingPacket, handleUnknownOneNamePacket, link, listDir, lock, lstat, mkdir, open, openDir, openRemoteFileChannel, put, putReferencedName, read, read, readAttributes, readDir, readDir, readLink, remove, rename, response, rmdir, rpc, setStat, setStat, stat, stat, throwStatusException, unlock, write, write, writeAttributesMethods inherited from class AbstractSubsystemClient
toStringMethods inherited from class AbstractLoggingBean
debug, debug, debug, debug, debug, error, error, error, error, error, getSimplifiedLogger, info, info, warn, warn, warn, warn, warn, warn, warn, warnMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface SessionHolder
getSessionContextMethods inherited from interface SftpClient
getExtension, getName, open, open, openRemoteFileChannel, openRemotePathChannel, openRemotePathChannel, put, put, put, put, put, put, put, put, put, put, put, read, read, read, read, read, read, read, read, readDir, readEntries, rename, rename, singleSessionInstance, symLink, write, write, write, write, write, writeMethods inherited from interface SubsystemClient
getSession
-
Field Details
-
clientSession
-
channel
-
messages
-
cmdId
-
receiveBuffer
-
versionHolder
-
closing
-
extensions
-
exposedExtensions
-
nameDecodingCharset
-
lastMessage
-
-
Constructor Details
-
DefaultSftpClient
public DefaultSftpClient(ClientSession clientSession, SftpVersionSelector initialVersionSelector, SftpErrorDataHandler errorDataHandler) throws IOException - Parameters:
clientSession- TheClientSessioninitialVersionSelector- The initialSftpVersionSelector- ifnullthen version 6 is assumed.errorDataHandler- TheSftpErrorDataHandlerto handle incoming data through the error stream - ifnullthe data is silently ignored- Throws:
IOException- If failed to initialize
-
-
Method Details
-
getVersion
public int getVersion()- Returns:
- The negotiated SFTP protocol version
-
getClientSession
- Returns:
- The underlying
ClientSessionused
-
getClientChannel
- Returns:
- The underlying
ClientChannelused
-
getServerExtensions
- Returns:
- An (unmodifiable)
NavigableMapof the reported server extensions. where key=extension name (case insensitive)
-
getNameDecodingCharset
-
setNameDecodingCharset
-
isClosing
public boolean isClosing() -
isOpen
public boolean isOpen() -
close
- Throws:
IOException
-
data
Receive binary data from server main stream- Parameters:
buf- The buffer containing the incoming datastart- Offset in buffer to read the datalen- Available data in buffer- Returns:
- Actual size of received data
- Throws:
IOException- If failed to receive incoming data
-
receive
Read SFTP packets from buffer- Parameters:
incoming- The receivedBuffer- Returns:
trueif data from incoming buffer was processed- Throws:
IOException- if failed to process the buffer- See Also:
-
process
Process an SFTP packet- Parameters:
incoming- The receivedBuffer- Throws:
IOException- if failed to process the buffer
-
send
- Parameters:
cmd- Command to send - Note: only lower 8-bits are usedbuffer- TheBuffercontaining the command data- Returns:
- The assigned request id
- Throws:
IOException- if failed to send command
-
write
- Throws:
IOException
-
receive
- Parameters:
id- The expected request id- Returns:
- The received response
Buffercontaining the request id - Throws:
IOException- If connection closed or interrupted
-
receive
- Parameters:
id- The expected request ididleTimeout- The amount of time to wait for the response- Returns:
- The received response
Buffercontaining the request id - Throws:
IOException- If connection closed or interrupted
-
receive
- Parameters:
id- The expected request ididleTimeout- The amount of time to wait for the response- Returns:
- The received response
Buffercontaining the request id - Throws:
IOException- If connection closed or interrupted
-
init
protected void init(ClientSession session, SftpVersionSelector initialVersionSelector, Duration initializationTimeout) throws IOException - Throws:
IOException
-
handleInitResponse
- Throws:
IOException
-
waitForInitResponse
- Throws:
IOException
-
negotiateVersion
- Parameters:
selector- TheSftpVersionSelectorto use - ignored ifnull- Returns:
- The selected version (may be same as current)
- Throws:
IOException- If failed to negotiate
-
createSftpChannelSubsystem
-