Package org.apache.sshd.sftp.client
Interface SftpClient
-
- All Superinterfaces:
AutoCloseable,Channel,ChannelHolder,ClientChannelHolder,ClientSessionHolder,Closeable,NamedResource,SessionContextHolder,SessionHolder<ClientSession>,SubsystemClient
- All Known Subinterfaces:
FullAccessSftpClient
- All Known Implementing Classes:
AbstractSftpClient,DefaultSftpClient
public interface SftpClient extends SubsystemClient
- Author:
- Apache MINA Project
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static classSftpClient.Attributestatic classSftpClient.Attributesstatic classSftpClient.CloseableHandlestatic classSftpClient.CopyModestatic classSftpClient.DirEntrystatic classSftpClient.Handlestatic classSftpClient.OpenMode
-
Field Summary
Fields Modifier and Type Field Description static Set<SftpClient.OpenMode>DEFAULT_CHANNEL_MODESDefault modes for opening a channel if no specific modes specifiedstatic SftpClient.DirEntry[]EMPTY_DIR_ENTRIESstatic intIO_BUFFER_SIZEstatic intMIN_BUFFER_SIZEstatic intMIN_READ_BUFFER_SIZEstatic intMIN_WRITE_BUFFER_SIZE-
Fields inherited from interface org.apache.sshd.common.NamedResource
BY_NAME_COMPARATOR, NAME_EXTRACTOR
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description StringcanonicalPath(String path)The effective "normalized" remote pathvoidclose(SftpClient.Handle handle)Close the handle obtained from one of theopenmethodsdefault <E extends SftpClientExtension>
EgetExtension(Class<? extends E> extensionType)default SftpClientExtensiongetExtension(String extensionName)SftpClientExtensiongetExtension(SftpClientExtensionFactory factory)default StringgetName()CharsetgetNameDecodingCharset()NavigableMap<String,byte[]>getServerExtensions()intgetVersion()booleanisClosing()voidlink(String linkPath, String targetPath, boolean symbolic)Create a linkIterable<SftpClient.DirEntry>listDir(SftpClient.Handle handle)voidlock(SftpClient.Handle handle, long offset, long length, int mask)SftpClient.Attributeslstat(String path)Retrieve remote path meta-data - do not follow symbolic linksvoidmkdir(String path)Create remote directorydefault SftpClient.CloseableHandleopen(String path)Opens a remote file for readSftpClient.CloseableHandleopen(String path, Collection<SftpClient.OpenMode> options)Opens a remote file with the specified mode(s)default SftpClient.CloseableHandleopen(String path, SftpClient.OpenMode... options)Opens a remote file with the specified mode(s)SftpClient.CloseableHandleopenDir(String path)Obtain a handle for a directoryFileChannelopenRemoteFileChannel(String path, Collection<SftpClient.OpenMode> modes)Opens anFileChannelon the specified remote pathdefault FileChannelopenRemoteFileChannel(String path, SftpClient.OpenMode... modes)default FileChannelopenRemotePathChannel(String path, OpenOption... options)default FileChannelopenRemotePathChannel(String path, Collection<? extends OpenOption> options)default InputStreamread(String path)default InputStreamread(String path, int bufferSize)InputStreamread(String path, int bufferSize, Collection<SftpClient.OpenMode> mode)Read a remote file's data via an input streamdefault InputStreamread(String path, int bufferSize, SftpClient.OpenMode... mode)default InputStreamread(String path, Collection<SftpClient.OpenMode> mode)default InputStreamread(String path, SftpClient.OpenMode... mode)default intread(SftpClient.Handle handle, long fileOffset, byte[] dst)Reads data from the open (file) handledefault intread(SftpClient.Handle handle, long fileOffset, byte[] dst, int dstOffset, int len)intread(SftpClient.Handle handle, long fileOffset, byte[] dst, int dstOffset, int len, AtomicReference<Boolean> eofSignalled)Reads data from the open (file) handledefault intread(SftpClient.Handle handle, long fileOffset, byte[] dst, AtomicReference<Boolean> eofSignalled)Reads data from the open (file) handleIterable<SftpClient.DirEntry>readDir(String path)default List<SftpClient.DirEntry>readDir(SftpClient.Handle handle)List<SftpClient.DirEntry>readDir(SftpClient.Handle handle, AtomicReference<Boolean> eolIndicator)default Collection<SftpClient.DirEntry>readEntries(String path)Reads all entries available for a directoryStringreadLink(String path)Retrieve target of a linkvoidremove(String path)default voidrename(String oldPath, String newPath)voidrename(String oldPath, String newPath, Collection<SftpClient.CopyMode> options)default voidrename(String oldPath, String newPath, SftpClient.CopyMode... options)voidrmdir(String path)Remove remote directoryvoidsetNameDecodingCharset(Charset cs)voidsetStat(String path, SftpClient.Attributes attributes)Update remote node meta-datavoidsetStat(SftpClient.Handle handle, SftpClient.Attributes attributes)Update remote node meta-datadefault SftpClientsingleSessionInstance()Creates anSftpClientinstance that also closes the underlyingclient sessionwhen the client instance is closed.SftpClient.Attributesstat(String path)Retrieve remote path meta-data - follow symbolic links if encounteredSftpClient.Attributesstat(SftpClient.Handle handle)Retrieve file/directory handle meta-datadefault voidsymLink(String linkPath, String targetPath)Create symbolic linkvoidunlock(SftpClient.Handle handle, long offset, long length)default OutputStreamwrite(String path)default OutputStreamwrite(String path, int bufferSize)OutputStreamwrite(String path, int bufferSize, Collection<SftpClient.OpenMode> mode)Write to a remote file via an output streamdefault OutputStreamwrite(String path, int bufferSize, SftpClient.OpenMode... mode)default OutputStreamwrite(String path, Collection<SftpClient.OpenMode> mode)default OutputStreamwrite(String path, SftpClient.OpenMode... mode)default voidwrite(SftpClient.Handle handle, long fileOffset, byte[] src)voidwrite(SftpClient.Handle handle, long fileOffset, byte[] src, int srcOffset, int len)Write data to (open) file handle-
Methods inherited from interface org.apache.sshd.client.channel.ClientChannelHolder
getChannel, getClientChannel
-
Methods inherited from interface org.apache.sshd.client.session.ClientSessionHolder
getClientSession
-
Methods inherited from interface org.apache.sshd.common.session.SessionHolder
getSessionContext
-
Methods inherited from interface org.apache.sshd.client.subsystem.SubsystemClient
getSession
-
-
-
-
Field Detail
-
EMPTY_DIR_ENTRIES
static final SftpClient.DirEntry[] EMPTY_DIR_ENTRIES
-
MIN_BUFFER_SIZE
static final int MIN_BUFFER_SIZE
- See Also:
- Constant Field Values
-
MIN_READ_BUFFER_SIZE
static final int MIN_READ_BUFFER_SIZE
- See Also:
- Constant Field Values
-
MIN_WRITE_BUFFER_SIZE
static final int MIN_WRITE_BUFFER_SIZE
- See Also:
- Constant Field Values
-
IO_BUFFER_SIZE
static final int IO_BUFFER_SIZE
- See Also:
- Constant Field Values
-
DEFAULT_CHANNEL_MODES
static final Set<SftpClient.OpenMode> DEFAULT_CHANNEL_MODES
Default modes for opening a channel if no specific modes specified
-
-
Method Detail
-
getVersion
int getVersion()
- Returns:
- The negotiated SFTP protocol version
-
getName
default String getName()
- Specified by:
getNamein interfaceNamedResource
-
getNameDecodingCharset
Charset getNameDecodingCharset()
- Returns:
- The (never
null)Charsetused to decode referenced files/folders names - See Also:
SftpModuleProperties.NAME_DECODING_CHARSET
-
setNameDecodingCharset
void setNameDecodingCharset(Charset cs)
-
getServerExtensions
NavigableMap<String,byte[]> getServerExtensions()
- Returns:
- An (unmodifiable)
NavigableMapof the reported server extensions. where key=extension name (case insensitive)
-
isClosing
boolean isClosing()
-
open
default SftpClient.CloseableHandle open(String path) throws IOException
Opens a remote file for read- Parameters:
path- The remote path- Returns:
- The file's
SftpClient.CloseableHandle - Throws:
IOException- If failed to open the remote file- See Also:
open(String, Collection)
-
open
default SftpClient.CloseableHandle open(String path, SftpClient.OpenMode... options) throws IOException
Opens a remote file with the specified mode(s)- Parameters:
path- The remote pathoptions- The desired mode - if none specified thenSftpClient.OpenMode.Readis assumed- Returns:
- The file's
SftpClient.CloseableHandle - Throws:
IOException- If failed to open the remote file- See Also:
open(String, Collection)
-
open
SftpClient.CloseableHandle open(String path, Collection<SftpClient.OpenMode> options) throws IOException
Opens a remote file with the specified mode(s)- Parameters:
path- The remote pathoptions- The desired mode - if none specified thenSftpClient.OpenMode.Readis assumed- Returns:
- The file's
SftpClient.CloseableHandle - Throws:
IOException- If failed to open the remote file
-
close
void close(SftpClient.Handle handle) throws IOException
Close the handle obtained from one of theopenmethods- Parameters:
handle- TheHandleto close- Throws:
IOException- If failed to execute
-
remove
void remove(String path) throws IOException
- Parameters:
path- The remote path to remove- Throws:
IOException- If failed to execute
-
rename
default void rename(String oldPath, String newPath) throws IOException
- Throws:
IOException
-
rename
default void rename(String oldPath, String newPath, SftpClient.CopyMode... options) throws IOException
- Throws:
IOException
-
rename
void rename(String oldPath, String newPath, Collection<SftpClient.CopyMode> options) throws IOException
- Throws:
IOException
-
read
default int read(SftpClient.Handle handle, long fileOffset, byte[] dst) throws IOException
Reads data from the open (file) handle- Parameters:
handle- The fileSftpClient.Handleto read fromfileOffset- The file offset to read fromdst- The destination buffer- Returns:
- Number of read bytes -
-1if EOF reached - Throws:
IOException- If failed to read the data- See Also:
read(Handle, long, byte[], int, int)
-
read
default int read(SftpClient.Handle handle, long fileOffset, byte[] dst, AtomicReference<Boolean> eofSignalled) throws IOException
Reads data from the open (file) handle- Parameters:
handle- The fileSftpClient.Handleto read fromfileOffset- The file offset to read fromdst- The destination buffereofSignalled- If notnullthen upon return holds a value indicating whether EOF was reached due to the read. Ifnullindicator value then this indication is not available- Returns:
- Number of read bytes -
-1if EOF reached - Throws:
IOException- If failed to read the data- See Also:
read(Handle, long, byte[], int, int, AtomicReference), SFTP v6 - section 9.3
-
read
default int read(SftpClient.Handle handle, long fileOffset, byte[] dst, int dstOffset, int len) throws IOException
- Throws:
IOException
-
read
int read(SftpClient.Handle handle, long fileOffset, byte[] dst, int dstOffset, int len, AtomicReference<Boolean> eofSignalled) throws IOException
Reads data from the open (file) handle- Parameters:
handle- The fileSftpClient.Handleto read fromfileOffset- The file offset to read fromdst- The destination bufferdstOffset- Offset in destination buffer to place the read datalen- Available destination buffer size to readeofSignalled- If notnullthen upon return holds a value indicating whether EOF was reached due to the read. Ifnullindicator value then this indication is not available- Returns:
- Number of read bytes -
-1if EOF reached - Throws:
IOException- If failed to read the data- See Also:
- SFTP v6 - section 9.3
-
write
default void write(SftpClient.Handle handle, long fileOffset, byte[] src) throws IOException
- Throws:
IOException
-
write
void write(SftpClient.Handle handle, long fileOffset, byte[] src, int srcOffset, int len) throws IOException
Write data to (open) file handle- Parameters:
handle- The fileSftpClient.HandlefileOffset- Zero-based offset to write in filesrc- Data buffersrcOffset- Offset of valid data in bufferlen- Number of bytes to write- Throws:
IOException- If failed to write the data
-
mkdir
void mkdir(String path) throws IOException
Create remote directory- Parameters:
path- Remote directory path- Throws:
IOException- If failed to execute
-
rmdir
void rmdir(String path) throws IOException
Remove remote directory- Parameters:
path- Remote directory path- Throws:
IOException- If failed to execute
-
openDir
SftpClient.CloseableHandle openDir(String path) throws IOException
Obtain a handle for a directory- Parameters:
path- Remote directory path- Returns:
- The associated directory
SftpClient.Handle - Throws:
IOException- If failed to execute
-
readDir
default List<SftpClient.DirEntry> readDir(SftpClient.Handle handle) throws IOException
- Parameters:
handle- DirectorySftpClient.Handleto read from- Returns:
- A
Listof entries -nullto indicate no more entries Note: the list may be incomplete since the client and server have some internal imposed limit on the number of entries they can process. Therefore several calls to this method may be required (untilnull). In order to iterate over all the entries usereadDir(String) - Throws:
IOException- If failed to access the remote site
-
readDir
List<SftpClient.DirEntry> readDir(SftpClient.Handle handle, AtomicReference<Boolean> eolIndicator) throws IOException
- Parameters:
handle- DirectorySftpClient.Handleto read fromeolIndicator- An indicator that can be used to get information whether end of list has been reached - ignored ifnull. Upon return, set value indicates whether all entries have been exhausted - anullvalue means that this information cannot be provided and another call toreadDiris necessary in order to verify that no more entries are pending- Returns:
- A
Listof entries -nullto indicate no more entries - Throws:
IOException- If failed to access the remote site- See Also:
- SFTP v6 - section 9.4
-
listDir
Iterable<SftpClient.DirEntry> listDir(SftpClient.Handle handle) throws IOException
- Parameters:
handle- A directorySftpClient.Handle- Returns:
- An
Iterablethat can be used to iterate over all the directory entries (likereadDir(String)). Note: the iterable instance is not re-usable - i.e., files can be iterated only once - Throws:
IOException- If failed to access the directory
-
canonicalPath
String canonicalPath(String path) throws IOException
The effective "normalized" remote path- Parameters:
path- The requested path - may be relative, and/or contain dots - e.g., ".", "..", "./foo", "../bar"- Returns:
- The effective "normalized" remote path
- Throws:
IOException- If failed to execute
-
stat
SftpClient.Attributes stat(String path) throws IOException
Retrieve remote path meta-data - follow symbolic links if encountered- Parameters:
path- The remote path- Returns:
- The associated
SftpClient.Attributes - Throws:
IOException- If failed to execute
-
lstat
SftpClient.Attributes lstat(String path) throws IOException
Retrieve remote path meta-data - do not follow symbolic links- Parameters:
path- The remote path- Returns:
- The associated
SftpClient.Attributes - Throws:
IOException- If failed to execute
-
stat
SftpClient.Attributes stat(SftpClient.Handle handle) throws IOException
Retrieve file/directory handle meta-data- Parameters:
handle- TheSftpClient.Handleobtained via one of theopencalls- Returns:
- The associated
SftpClient.Attributes - Throws:
IOException- If failed to execute
-
setStat
void setStat(String path, SftpClient.Attributes attributes) throws IOException
Update remote node meta-data- Parameters:
path- The remote pathattributes- TheSftpClient.Attributesto update- Throws:
IOException- If failed to execute
-
setStat
void setStat(SftpClient.Handle handle, SftpClient.Attributes attributes) throws IOException
Update remote node meta-data- Parameters:
handle- TheSftpClient.Handleobtained via one of theopencallsattributes- TheSftpClient.Attributesto update- Throws:
IOException- If failed to execute
-
readLink
String readLink(String path) throws IOException
Retrieve target of a link- Parameters:
path- Remote path that represents a link- Returns:
- The link target
- Throws:
IOException- If failed to execute
-
symLink
default void symLink(String linkPath, String targetPath) throws IOException
Create symbolic link- Parameters:
linkPath- The link locationtargetPath- The referenced target by the link- Throws:
IOException- If failed to execute- See Also:
link(String, String, boolean)
-
link
void link(String linkPath, String targetPath, boolean symbolic) throws IOException
Create a link- Parameters:
linkPath- The link locationtargetPath- The referenced target by the linksymbolic- Iftruethen make this a symbolic link, otherwise a hard one- Throws:
IOException- If failed to execute
-
lock
void lock(SftpClient.Handle handle, long offset, long length, int mask) throws IOException
- Throws:
IOException
-
unlock
void unlock(SftpClient.Handle handle, long offset, long length) throws IOException
- Throws:
IOException
-
openRemotePathChannel
default FileChannel openRemotePathChannel(String path, OpenOption... options) throws IOException
- Throws:
IOException
-
openRemotePathChannel
default FileChannel openRemotePathChannel(String path, Collection<? extends OpenOption> options) throws IOException
- Throws:
IOException
-
openRemoteFileChannel
default FileChannel openRemoteFileChannel(String path, SftpClient.OpenMode... modes) throws IOException
- Throws:
IOException
-
openRemoteFileChannel
FileChannel openRemoteFileChannel(String path, Collection<SftpClient.OpenMode> modes) throws IOException
Opens anFileChannelon the specified remote path- Parameters:
path- The remote pathmodes- The access mode(s) - ifnull/empty then theDEFAULT_CHANNEL_MODESare used- Returns:
- The open
FileChannel- Note: do not close this owner client instance until the channel is no longer needed since it uses the client for providing the channel's functionality. - Throws:
IOException- If failed to open the channel- See Also:
Channels.newInputStream(java.nio.channels.ReadableByteChannel),Channels.newOutputStream(java.nio.channels.WritableByteChannel)
-
readDir
Iterable<SftpClient.DirEntry> readDir(String path) throws IOException
- Parameters:
path- The remote directory path- Returns:
- An
Iterablethat can be used to iterate over all the directory entries (unlikereadDir(Handle)) - Throws:
IOException- If failed to access the remote site- See Also:
readDir(Handle)
-
readEntries
default Collection<SftpClient.DirEntry> readEntries(String path) throws IOException
Reads all entries available for a directory- Parameters:
path- Remote directory path- Returns:
- A
Collectionof all the entries in the remote directory - Throws:
IOException- If failed to retrieve the entries- See Also:
readDir(String)
-
read
default InputStream read(String path) throws IOException
- Throws:
IOException
-
read
default InputStream read(String path, int bufferSize) throws IOException
- Throws:
IOException
-
read
default InputStream read(String path, SftpClient.OpenMode... mode) throws IOException
- Throws:
IOException
-
read
default InputStream read(String path, int bufferSize, SftpClient.OpenMode... mode) throws IOException
- Throws:
IOException
-
read
default InputStream read(String path, Collection<SftpClient.OpenMode> mode) throws IOException
- Throws:
IOException
-
read
InputStream read(String path, int bufferSize, Collection<SftpClient.OpenMode> mode) throws IOException
Read a remote file's data via an input stream- Parameters:
path- The remote file pathbufferSize- The internal read buffer sizemode- The remote fileSftpClient.OpenModes- Returns:
- An
InputStreamfor reading the remote file data - Throws:
IOException- If failed to execute
-
write
default OutputStream write(String path) throws IOException
- Throws:
IOException
-
write
default OutputStream write(String path, int bufferSize) throws IOException
- Throws:
IOException
-
write
default OutputStream write(String path, SftpClient.OpenMode... mode) throws IOException
- Throws:
IOException
-
write
default OutputStream write(String path, int bufferSize, SftpClient.OpenMode... mode) throws IOException
- Throws:
IOException
-
write
default OutputStream write(String path, Collection<SftpClient.OpenMode> mode) throws IOException
- Throws:
IOException
-
write
OutputStream write(String path, int bufferSize, Collection<SftpClient.OpenMode> mode) throws IOException
Write to a remote file via an output stream- Parameters:
path- The remote file pathbufferSize- The internal write buffer sizemode- The remote fileSftpClient.OpenModes- Returns:
- An
OutputStreamfor writing the data - Throws:
IOException- If failed to execute
-
getExtension
default <E extends SftpClientExtension> E getExtension(Class<? extends E> extensionType)
- Type Parameters:
E- The generic extension type- Parameters:
extensionType- The extension type- Returns:
- The extension instance - Note: it is up to the caller to invoke
OptionalFeature.isSupported()-nullif this extension type is not implemented by the client - See Also:
getServerExtensions()
-
getExtension
default SftpClientExtension getExtension(String extensionName)
- Parameters:
extensionName- The extension name- Returns:
- The extension instance - Note: it is up to the caller to invoke
OptionalFeature.isSupported()-nullif this extension type is not implemented by the client - See Also:
getServerExtensions()
-
getExtension
SftpClientExtension getExtension(SftpClientExtensionFactory factory)
- Parameters:
factory- TheSftpClientExtensionFactoryinstance to use - ignored ifnull- Returns:
- The extension instance - Note: it is up to the caller to invoke
OptionalFeature.isSupported()-nullif this extension type is not implemented by the client
-
singleSessionInstance
default SftpClient singleSessionInstance()
Creates anSftpClientinstance that also closes the underlyingclient sessionwhen the client instance is closed.- Returns:
- The wrapper instance
-
-