public interface SftpFileSystemAccessor
Modifier and Type | Field and Description |
---|---|
static SftpFileSystemAccessor |
DEFAULT |
static boolean |
DEFAULT_AUTO_SYNC_FILE_ON_CLOSE
Default value for "sftp-auto-fsync-on-close" if none set
|
static List<String> |
DEFAULT_UNIX_VIEW |
static NavigableMap<String,FileInfoExtractor<?>> |
FILEATTRS_RESOLVERS
A case insensitive
NavigableMap of FileInfoExtractor s to be used to complete attributes
that are deemed important enough to warrant an extra effort if not accessible via the file system attributes
views |
static String |
PROP_AUTO_SYNC_FILE_ON_CLOSE
Whether to invoke
FileChannel.force(boolean) on files open for write when closing |
Modifier and Type | Method and Description |
---|---|
default void |
closeDirectory(ServerSession session,
SftpSubsystemProxy subsystem,
DirectoryHandle dirHandle,
Path dir,
String handle,
DirectoryStream<Path> ds)
Called when a directory stream is no longer required
|
default void |
closeFile(ServerSession session,
SftpSubsystemProxy subsystem,
FileHandle fileHandle,
Path file,
String handle,
Channel channel,
Set<? extends OpenOption> options)
Called to inform the accessor that it should close the file
|
default void |
copyFile(ServerSession session,
SftpSubsystemProxy subsystem,
Path src,
Path dst,
Collection<CopyOption> opts) |
default void |
createDirectory(ServerSession session,
SftpSubsystemProxy subsystem,
Path path) |
default void |
createLink(ServerSession session,
SftpSubsystemProxy subsystem,
Path link,
Path existing,
boolean symLink)
Invoked in order to create a link to a path
|
default DirectoryStream<Path> |
openDirectory(ServerSession session,
SftpSubsystemProxy subsystem,
DirectoryHandle dirHandle,
Path dir,
String handle)
Called when a new directory stream is requested
|
default SeekableByteChannel |
openFile(ServerSession session,
SftpSubsystemProxy subsystem,
FileHandle fileHandle,
Path file,
String handle,
Set<? extends OpenOption> options,
FileAttribute<?>... attrs)
Called whenever a new file is opened
|
default Map<String,?> |
readFileAttributes(ServerSession session,
SftpSubsystemProxy subsystem,
Path file,
String view,
LinkOption... options)
Invoked when required to retrieve file attributes for a specific file system view
|
default void |
removeFile(ServerSession session,
SftpSubsystemProxy subsystem,
Path path,
boolean isDirectory) |
default void |
renameFile(ServerSession session,
SftpSubsystemProxy subsystem,
Path oldPath,
Path newPath,
Collection<CopyOption> opts) |
default UserPrincipal |
resolveFileOwner(ServerSession session,
SftpSubsystemProxy subsystem,
Path file,
UserPrincipal name) |
default GroupPrincipal |
resolveGroupOwner(ServerSession session,
SftpSubsystemProxy subsystem,
Path file,
GroupPrincipal name) |
default String |
resolveLinkTarget(ServerSession session,
SftpSubsystemProxy subsystem,
Path link) |
default Path |
resolveLocalFilePath(ServerSession session,
SftpSubsystemProxy subsystem,
Path rootDir,
String remotePath)
Invoked in order to resolve remote file paths reference by the client into ones accessible by the server
|
default void |
setFileAccessControl(ServerSession session,
SftpSubsystemProxy subsystem,
Path file,
List<AclEntry> acl,
LinkOption... options) |
default void |
setFileAttribute(ServerSession session,
SftpSubsystemProxy subsystem,
Path file,
String view,
String attribute,
Object value,
LinkOption... options)
Sets a view attribute for a local file
|
default void |
setFileOwner(ServerSession session,
SftpSubsystemProxy subsystem,
Path file,
Principal value,
LinkOption... options) |
default void |
setFilePermissions(ServerSession session,
SftpSubsystemProxy subsystem,
Path file,
Set<PosixFilePermission> perms,
LinkOption... options) |
default void |
setGroupOwner(ServerSession session,
SftpSubsystemProxy subsystem,
Path file,
Principal value,
LinkOption... options) |
default void |
syncFileData(ServerSession session,
SftpSubsystemProxy subsystem,
FileHandle fileHandle,
Path file,
String handle,
Channel channel)
Called when file meta-data re-synchronization is required
|
default FileLock |
tryLock(ServerSession session,
SftpSubsystemProxy subsystem,
FileHandle fileHandle,
Path file,
String handle,
Channel channel,
long position,
long size,
boolean shared)
Called when locking a section of a file is requested
|
static final NavigableMap<String,FileInfoExtractor<?>> FILEATTRS_RESOLVERS
NavigableMap
of FileInfoExtractor
s to be used to complete attributes
that are deemed important enough to warrant an extra effort if not accessible via the file system attributes
viewsstatic final String PROP_AUTO_SYNC_FILE_ON_CLOSE
FileChannel.force(boolean)
on files open for write when closingstatic final boolean DEFAULT_AUTO_SYNC_FILE_ON_CLOSE
static final SftpFileSystemAccessor DEFAULT
default Path resolveLocalFilePath(ServerSession session, SftpSubsystemProxy subsystem, Path rootDir, String remotePath) throws IOException, InvalidPathException
session
- The ServerSession
through which the request was receivedsubsystem
- The SFTP subsystem instance that manages the sessionrootDir
- The default root directory used to resolve relative paths - a.k.a. the
chroot
locationremotePath
- The remote path - separated by '/'Path
IOException
- If failed to resolve the local pathInvalidPathException
- If bad local path specificationSftpSubsystemEnvironment#getDefaultDirectory()
default SeekableByteChannel openFile(ServerSession session, SftpSubsystemProxy subsystem, FileHandle fileHandle, Path file, String handle, Set<? extends OpenOption> options, FileAttribute<?>... attrs) throws IOException
session
- The ServerSession
through which the request was receivedsubsystem
- The SFTP subsystem instance that manages the sessionfileHandle
- The FileHandle
representing the created channel - may be null
if not invoked
within the context of such a handle (special cases)file
- The requested local file Path
- same one returned by
resolveLocalFilePath
handle
- The assigned file handle through which the remote peer references this file. May be
null
/empty if the request is due to some internal functionality instead of due to
peer requesting a handle to a file.options
- The requested OpenOption
sattrs
- The requested FileAttribute
sSeekableByteChannel
IOException
- If failed to opendefault FileLock tryLock(ServerSession session, SftpSubsystemProxy subsystem, FileHandle fileHandle, Path file, String handle, Channel channel, long position, long size, boolean shared) throws IOException
session
- The ServerSession
through which the request was receivedsubsystem
- The SFTP subsystem instance that manages the sessionfileHandle
- The FileHandle
representing the created channelfile
- The requested local file Path
- same one returned by
resolveLocalFilePath
handle
- The assigned file handle through which the remote peer references this filechannel
- The original Channel
that was returned by
openFile(ServerSession, SftpSubsystemProxy, FileHandle, Path, String, Set, FileAttribute...)
position
- The position at which the locked region is to start - must be non-negativesize
- The size of the locked region; must be non-negative, and the sum
position + size must be non-negativeshared
- true
to request a shared lock, false
to request an exclusive locknull
if the lock could not be
acquired because another program holds an overlapping lockIOException
- If failed to honor the requestFileChannel.tryLock(long, long, boolean)
default void syncFileData(ServerSession session, SftpSubsystemProxy subsystem, FileHandle fileHandle, Path file, String handle, Channel channel) throws IOException
session
- The ServerSession
through which the request was receivedsubsystem
- The SFTP subsystem instance that manages the sessionfileHandle
- The FileHandle
representing the created channelfile
- The requested local file Path
- same one returned by
resolveLocalFilePath
handle
- The assigned file handle through which the remote peer references this filechannel
- The original Channel
that was returned by
openFile(ServerSession, SftpSubsystemProxy, FileHandle, Path, String, Set, FileAttribute...)
IOException
- If failed to execute the requestFileChannel.force(boolean)
,
OpenSSH - section
10default void closeFile(ServerSession session, SftpSubsystemProxy subsystem, FileHandle fileHandle, Path file, String handle, Channel channel, Set<? extends OpenOption> options) throws IOException
session
- The ServerSession
through which the request was receivedsubsystem
- The SFTP subsystem instance that manages the sessionfileHandle
- The FileHandle
representing the created channel - may be null
if not invoked
within the context of such a handle (special cases)file
- The requested local file Path
- same one returned by
resolveLocalFilePath
handle
- The assigned file handle through which the remote peer references this filechannel
- The original Channel
that was returned by
openFile(ServerSession, SftpSubsystemProxy, FileHandle, Path, String, Set, FileAttribute...)
options
- The original options used to open the channelIOException
- If failed to execute the requestdefault DirectoryStream<Path> openDirectory(ServerSession session, SftpSubsystemProxy subsystem, DirectoryHandle dirHandle, Path dir, String handle) throws IOException
session
- The ServerSession
through which the request was receivedsubsystem
- The SFTP subsystem instance that manages the sessiondirHandle
- The DirectoryHandle
representing the streamdir
- The requested local directory Path
- same one returned by
resolveLocalFilePath
handle
- The assigned directory handle through which the remote peer references this directoryDirectoryStream
IOException
- If failed to opendefault void closeDirectory(ServerSession session, SftpSubsystemProxy subsystem, DirectoryHandle dirHandle, Path dir, String handle, DirectoryStream<Path> ds) throws IOException
session
- The ServerSession
through which the request was receivedsubsystem
- The SFTP subsystem instance that manages the sessiondirHandle
- The DirectoryHandle
representing the stream - may be null
if not invoked
within the context of such a handle (special cases)dir
- The requested local directory Path
- same one returned by
resolveLocalFilePath
handle
- The assigned directory handle through which the remote peer references this directoryds
- The disposed DirectoryStream
IOException
- If failed to opendefault Map<String,?> readFileAttributes(ServerSession session, SftpSubsystemProxy subsystem, Path file, String view, LinkOption... options) throws IOException
session
- The ServerSession
through which the request was receivedsubsystem
- The SFTP subsystem instance that manages the sessionfile
- The requested local file Path
- same one returned by
resolveLocalFilePath
view
- The required view nameoptions
- The access LinkOption
-sMap
of all the attributes available for the file in the viewIOException
- If failed to read the attributesFiles.readAttributes(Path, String, LinkOption...)
default void setFileAttribute(ServerSession session, SftpSubsystemProxy subsystem, Path file, String view, String attribute, Object value, LinkOption... options) throws IOException
session
- The ServerSession
through which the request was receivedsubsystem
- The SFTP subsystem instance that manages the sessionfile
- The requested local file Path
- same one returned by
resolveLocalFilePath
view
- The required view nameattribute
- The attribute namevalue
- The attribute valueoptions
- The access LinkOption
-sIOException
- If failed to set the attributedefault UserPrincipal resolveFileOwner(ServerSession session, SftpSubsystemProxy subsystem, Path file, UserPrincipal name) throws IOException
IOException
default void setFileOwner(ServerSession session, SftpSubsystemProxy subsystem, Path file, Principal value, LinkOption... options) throws IOException
IOException
default GroupPrincipal resolveGroupOwner(ServerSession session, SftpSubsystemProxy subsystem, Path file, GroupPrincipal name) throws IOException
IOException
default void setGroupOwner(ServerSession session, SftpSubsystemProxy subsystem, Path file, Principal value, LinkOption... options) throws IOException
IOException
default void setFilePermissions(ServerSession session, SftpSubsystemProxy subsystem, Path file, Set<PosixFilePermission> perms, LinkOption... options) throws IOException
IOException
default void setFileAccessControl(ServerSession session, SftpSubsystemProxy subsystem, Path file, List<AclEntry> acl, LinkOption... options) throws IOException
IOException
default void createDirectory(ServerSession session, SftpSubsystemProxy subsystem, Path path) throws IOException
IOException
default void createLink(ServerSession session, SftpSubsystemProxy subsystem, Path link, Path existing, boolean symLink) throws IOException
session
- The ServerSession
through which the request was receivedsubsystem
- The SFTP subsystem instance that manages the sessionlink
- The requested link Path
- same one returned by
resolveLocalFilePath
existing
- The existing Path
that the link should referencesymLink
- true
if this should be a symbolic linkIOException
- If failed to create the linkFiles.createLink(Path, Path)
,
Files.createSymbolicLink(Path, Path, FileAttribute...)
default String resolveLinkTarget(ServerSession session, SftpSubsystemProxy subsystem, Path link) throws IOException
IOException
default void renameFile(ServerSession session, SftpSubsystemProxy subsystem, Path oldPath, Path newPath, Collection<CopyOption> opts) throws IOException
IOException
default void copyFile(ServerSession session, SftpSubsystemProxy subsystem, Path src, Path dst, Collection<CopyOption> opts) throws IOException
IOException
default void removeFile(ServerSession session, SftpSubsystemProxy subsystem, Path path, boolean isDirectory) throws IOException
IOException
Copyright © 2008–2022 The Apache Software Foundation. All rights reserved.