Package org.apache.sshd.sftp.client.impl
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 org.apache.sshd.sftp.client.SftpClient
SftpClient.Attribute, SftpClient.Attributes, SftpClient.CloseableHandle, SftpClient.CopyMode, SftpClient.DirEntry, SftpClient.Handle, SftpClient.OpenMode
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final ChannelSubsystem
private final ClientSession
private final AtomicBoolean
private final AtomicInteger
private final NavigableMap
<String, byte[]> private final NavigableMap
<String, byte[]> private Charset
private final Buffer
private final AtomicInteger
Fields inherited from class org.apache.sshd.sftp.client.impl.AbstractSftpClient
errorDataHandler, INIT_COMMAND_SIZE
Fields inherited from class org.apache.sshd.common.util.logging.AbstractLoggingBean
log
Fields inherited from interface org.apache.sshd.common.NamedResource
BY_NAME_COMPARATOR, NAME_EXTRACTOR
Fields inherited from interface org.apache.sshd.sftp.client.SftpClient
DEFAULT_CHANNEL_MODES, EMPTY_DIR_ENTRIES, IO_BUFFER_SIZE, MIN_BUFFER_SIZE, MIN_READ_BUFFER_SIZE, MIN_WRITE_BUFFER_SIZE
Fields inherited from interface org.apache.sshd.sftp.client.SftpErrorDataHandler
EMPTY
-
Constructor Summary
ConstructorsConstructorDescriptionDefaultSftpClient
(ClientSession clientSession, SftpVersionSelector initialVersionSelector, SftpErrorDataHandler errorDataHandler) -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
protected ChannelSubsystem
createSftpChannelSubsystem
(ClientSession clientSession) protected int
data
(byte[] buf, int start, int len) Receive binary data from server main streamNavigableMap
<String, byte[]> int
protected void
handleInitResponse
(Buffer buffer) protected void
init
(ClientSession session, SftpVersionSelector initialVersionSelector, Duration initializationTimeout) boolean
boolean
isOpen()
int
negotiateVersion
(SftpVersionSelector selector) protected void
Process an SFTP packetreceive
(int id) receive
(int id, long idleTimeout) protected boolean
Read SFTP packets from bufferint
void
setNameDecodingCharset
(Charset nameDecodingCharset) protected Buffer
waitForInitResponse
(Duration initializationTimeout) Methods inherited from class org.apache.sshd.sftp.client.impl.AbstractSftpClient
canonicalPath, checkAttributes, checkAttributesResponse, checkCommandStatus, checkData, 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, putReferencedName, read, read, readAttributes, readDir, readDir, readLink, remove, rename, response, rmdir, rpc, setStat, setStat, stat, stat, throwStatusException, unlock, write, write, writeAttributes
Methods inherited from class org.apache.sshd.client.subsystem.AbstractSubsystemClient
toString
Methods inherited from class org.apache.sshd.common.util.logging.AbstractLoggingBean
debug, debug, debug, debug, debug, error, error, error, error, error, getSimplifiedLogger, info, info, warn, warn, warn, warn, warn, warn, warn, warn
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.apache.sshd.common.session.SessionHolder
getSessionContext
Methods inherited from interface org.apache.sshd.sftp.client.SftpClient
getExtension, getName, open, open, openRemoteFileChannel, openRemotePathChannel, openRemotePathChannel, read, read, read, read, read, read, read, read, readDir, readEntries, rename, rename, singleSessionInstance, symLink, write, write, write, write, write, write
Methods inherited from interface org.apache.sshd.client.subsystem.SubsystemClient
getSession
-
Field Details
-
clientSession
-
channel
-
messages
-
cmdId
-
receiveBuffer
-
versionHolder
-
closing
-
extensions
-
exposedExtensions
-
nameDecodingCharset
-
-
Constructor Details
-
DefaultSftpClient
public DefaultSftpClient(ClientSession clientSession, SftpVersionSelector initialVersionSelector, SftpErrorDataHandler errorDataHandler) throws IOException - Parameters:
clientSession
- TheClientSession
initialVersionSelector
- The initialSftpVersionSelector
- ifnull
then version 6 is assumed.errorDataHandler
- TheSftpErrorDataHandler
to handle incoming data through the error stream - ifnull
the 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
ClientSession
used
-
getClientChannel
- Returns:
- The underlying
ClientChannel
used
-
getServerExtensions
- Returns:
- An (unmodifiable)
NavigableMap
of the reported server extensions. where key=extension name (case insensitive)
-
getNameDecodingCharset
- Returns:
- The (never
null
)Charset
used to decode referenced files/folders names - See Also:
-
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:
true
if 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
- TheBuffer
containing the command data- Returns:
- The assigned request id
- Throws:
IOException
- if failed to send command
-
receive
- Parameters:
id
- The expected request id- Returns:
- The received response
Buffer
containing 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
Buffer
containing 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
Buffer
containing 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
- TheSftpVersionSelector
to use - ignored ifnull
- Returns:
- The selected version (may be same as current)
- Throws:
IOException
- If failed to negotiate
-
createSftpChannelSubsystem
-