Package org.apache.sshd.sftp.common
Class SftpHelper
java.lang.Object
org.apache.sshd.sftp.common.SftpHelper
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic int
attributesToPermissions
(boolean isReg, boolean isDir, boolean isLnk, Collection<PosixFilePermission> perms) Converts a file / folder's attributes into a maskstatic AclEntry
buildAclEntry
(int aclType, int aclFlag, int aclMask, String aclWho) static AclEntryType
decodeAclEntryType
(int aclType) static Set<AclEntryFlag>
decodeAclFlags
(int aclFlag) static Set<AclEntryPermission>
decodeAclMask
(int aclMask) decodeACLs
(Buffer buffer, int version) static int
Returns the equivalent SFTP value for the ACL typestatic long
encodeAclFlags
(Collection<AclEntryFlag> flags) static long
static <B extends Buffer>
BencodeACLs
(B buffer, int version, Collection<AclEntry> acl) static int
fileTypeToPermission
(int type) Converts a file type into a POSIX permission mask valuestatic boolean
static Boolean
getEndOfFileIndicatorValue
(Buffer buffer, int version) Retrieves the end-of-file indicator forSSH_FXP_DATA
responses, provided the version is at least 6, and the buffer has enough available datastatic Boolean
getEndOfListIndicatorValue
(Buffer buffer, int version) Retrieves the end-of-list indicator forSSH_FXP_NAME
responses, provided the version is at least 6, and the buffer has enough available datastatic String
getLongName
(String shortName, Map<String, ?> attributes) Creates an "ls -l" compatible long name stringstatic Boolean
indicateEndOfNamesList
(Buffer buffer, int version, PropertyResolver resolver) Appends the end-of-list=TRUE
indicator forSSH_FXP_NAME
responses, provided the version is at least 6 and the feature is enabledstatic Boolean
indicateEndOfNamesList
(Buffer buffer, int version, PropertyResolver resolver, boolean indicatorValue) Appends the end-of-list indicator forSSH_FXP_NAME
responses, provided the version is at least 6, the feature is enabled and the indicator value is notnull
static Set<PosixFilePermission>
permissionsToAttributes
(int perms) Translates a mask of permissions into its enumeration values equivalentsstatic int
permissionsToFileType
(int perms) Converts a POSIX permissions mask to a file type valuestatic NavigableMap<String,
Object> static NavigableMap<String,
byte[]> readExtensions
(Buffer buffer) static FileTime
Decodes aFileTime
value from a bufferstatic String
resolveStatusMessage
(int subStatus) static int
Returns the most adequate sub-status for the provided exceptionstatic NavigableMap<String,
byte[]> toBinaryExtensions
(Map<String, String> extensions) static NavigableMap<String,
String> toStringExtensions
(Map<String, ?> extensions) static <B extends Buffer>
BwriteAclEntry
(B buffer, AclEntry acl) static <B extends Buffer>
BwriteACLs
(B buffer, int version, Collection<AclEntry> acl) static <B extends Buffer>
BwriteAttributes
(B buffer, SftpClient.Attributes attributes, int sftpVersion) static <B extends Buffer>
BwriteAttrs
(B buffer, int version, Map<String, ?> attributes) Writes a file / folder's attributes to a bufferstatic <B extends Buffer>
BwriteAttrsV3
(B buffer, int version, Map<String, ?> attributes) Writes the retrieved file / directory attributes in V3 formatstatic <B extends Buffer>
BwriteAttrsV4
(B buffer, int version, Map<String, ?> attributes) Writes the retrieved file / directory attributes in V4+ formatstatic <B extends Buffer>
BwriteExtensions
(B buffer, Map<?, ?> extensions) static <B extends Buffer>
BEncodes aFileTime
value into a buffer
-
Field Details
-
DEFAULT_SUBSTATUS_MESSAGE
-
-
Constructor Details
-
SftpHelper
private SftpHelper()
-
-
Method Details
-
getEndOfFileIndicatorValue
Retrieves the end-of-file indicator forSSH_FXP_DATA
responses, provided the version is at least 6, and the buffer has enough available data- Parameters:
buffer
- TheBuffer
to retrieve the data fromversion
- The SFTP version being used- Returns:
- The indicator value -
null
if none retrieved - See Also:
-
getEndOfListIndicatorValue
Retrieves the end-of-list indicator forSSH_FXP_NAME
responses, provided the version is at least 6, and the buffer has enough available data- Parameters:
buffer
- TheBuffer
to retrieve the data fromversion
- The SFTP version being used- Returns:
- The indicator value -
null
if none retrieved - See Also:
-
indicateEndOfNamesList
Appends the end-of-list=TRUE
indicator forSSH_FXP_NAME
responses, provided the version is at least 6 and the feature is enabled- Parameters:
buffer
- TheBuffer
to append the indicatorversion
- The SFTP version being usedresolver
- ThePropertyResolver
to query whether to enable the feature- Returns:
- The actual indicator value used -
null
if none appended - See Also:
-
indicateEndOfNamesList
public static Boolean indicateEndOfNamesList(Buffer buffer, int version, PropertyResolver resolver, boolean indicatorValue) Appends the end-of-list indicator forSSH_FXP_NAME
responses, provided the version is at least 6, the feature is enabled and the indicator value is notnull
- Parameters:
buffer
- TheBuffer
to append the indicatorversion
- The SFTP version being usedresolver
- ThePropertyResolver
to query whether to enable the featureindicatorValue
- The indicator value -null
means don't append the indicator- Returns:
- The actual indicator value used -
null
if none appended - See Also:
-
writeAttrs
Writes a file / folder's attributes to a buffer -
writeAttrsV3
Writes the retrieved file / directory attributes in V3 format- Type Parameters:
B
- Type ofBuffer
being updated- Parameters:
buffer
- The target buffer instanceversion
- The actual version - must beSftpConstants.SFTP_V3
attributes
- TheMap
of attributes- Returns:
- The updated buffer
-
writeAttrsV4
Writes the retrieved file / directory attributes in V4+ format- Type Parameters:
B
- Type ofBuffer
being updated- Parameters:
buffer
- The target buffer instanceversion
- The actual version - must be at leastSftpConstants.SFTP_V4
attributes
- TheMap
of attributes- Returns:
- The updated buffer
-
writeAttributes
public static <B extends Buffer> B writeAttributes(B buffer, SftpClient.Attributes attributes, int sftpVersion) -
getBool
- Parameters:
bool
- TheBoolean
value- Returns:
true
it the argument is non-null
and itsBoolean.booleanValue()
istrue
-
attributesToPermissions
public static int attributesToPermissions(boolean isReg, boolean isDir, boolean isLnk, Collection<PosixFilePermission> perms) Converts a file / folder's attributes into a mask- Parameters:
isReg
-true
if this is a normal fileisDir
-true
if this is a directoryisLnk
-true
if this is a symbolic linkperms
- The file / folder's accessPosixFilePermission
s- Returns:
- A mask encoding the file / folder's attributes
-
permissionsToFileType
public static int permissionsToFileType(int perms) Converts a POSIX permissions mask to a file type value- Parameters:
perms
- The POSIX permissions mask- Returns:
- The file type - see
SSH_FILEXFER_TYPE_xxx
values
-
fileTypeToPermission
public static int fileTypeToPermission(int type) Converts a file type into a POSIX permission mask value- Parameters:
type
- File type - seeSSH_FILEXFER_TYPE_xxx
values- Returns:
- The matching POSIX permission mask value
-
permissionsToAttributes
Translates a mask of permissions into its enumeration values equivalents- Parameters:
perms
- The permissions mask- Returns:
- A
Set
of the equivalentPosixFilePermission
s
-
resolveSubstatus
Returns the most adequate sub-status for the provided exception- Parameters:
t
- The thrownThrowable
- Returns:
- The matching sub-status
-
resolveStatusMessage
-
readAttrs
-
readExtensions
-
writeExtensions
-
toStringExtensions
-
toBinaryExtensions
-
readACLs
-
decodeACLs
-
buildAclEntry
-
decodeAclEntryType
- Parameters:
aclType
- TheACE4_ACCESS_xxx_ACE_TYPE
value- Returns:
- The matching
AclEntryType
ornull
if unknown value
-
decodeAclFlags
-
decodeAclMask
-
writeACLs
-
encodeACLs
-
writeAclEntry
-
encodeAclEntryType
Returns the equivalent SFTP value for the ACL type- Parameters:
type
- TheAclEntryType
- Returns:
- The equivalent
ACE_SYSTEM_xxx_TYPE
or negative ifnull
or unknown type
-
encodeAclFlags
-
encodeAclMask
-
writeTime
Encodes aFileTime
value into a buffer- Type Parameters:
B
- Type ofBuffer
being updated- Parameters:
buffer
- The target buffer instanceversion
- The encoding versionflags
- The encoding flagstime
- The value to encode- Returns:
- The updated buffer
-
readTime
Decodes aFileTime
value from a buffer- Parameters:
buffer
- The sourceBuffer
version
- The encoding versionflags
- The encoding flags- Returns:
- The decoded value
-
getLongName
Creates an "ls -l" compatible long name string- Parameters:
shortName
- The short file name - can also be "." or ".."attributes
- The file's attributes - e.g., size, owner, permissions, etc.- Returns:
- A
String
representing the "long" file name as per SFTP version 3 - section 7
-