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 intattributesToPermissions(boolean isReg, boolean isDir, boolean isLnk, Collection<PosixFilePermission> perms) Converts a file / folder's attributes into a maskstatic AclEntrybuildAclEntry(int aclType, int aclFlag, int aclMask, String aclWho) static AclEntryTypedecodeAclEntryType(int aclType) static Set<AclEntryFlag> decodeAclFlags(int aclFlag) static Set<AclEntryPermission> decodeAclMask(int aclMask) decodeACLs(Buffer buffer, int version) static intReturns the equivalent SFTP value for the ACL typestatic longencodeAclFlags(Collection<AclEntryFlag> flags) static longstatic <B extends Buffer>
BencodeACLs(B buffer, int version, Collection<AclEntry> acl) static intfileTypeToPermission(int type) Converts a file type into a POSIX permission mask valuestatic booleanstatic BooleangetEndOfFileIndicatorValue(Buffer buffer, int version) Retrieves the end-of-file indicator forSSH_FXP_DATAresponses, provided the version is at least 6, and the buffer has enough available datastatic BooleangetEndOfListIndicatorValue(Buffer buffer, int version) Retrieves the end-of-list indicator forSSH_FXP_NAMEresponses, provided the version is at least 6, and the buffer has enough available datastatic StringgetLongName(String shortName, Map<String, ?> attributes) Creates an "ls -l" compatible long name stringstatic BooleanindicateEndOfNamesList(Buffer buffer, int version, PropertyResolver resolver) Appends the end-of-list=TRUEindicator forSSH_FXP_NAMEresponses, provided the version is at least 6 and the feature is enabledstatic BooleanindicateEndOfNamesList(Buffer buffer, int version, PropertyResolver resolver, boolean indicatorValue) Appends the end-of-list indicator forSSH_FXP_NAMEresponses, provided the version is at least 6, the feature is enabled and the indicator value is notnullstatic Set<PosixFilePermission> permissionsToAttributes(int perms) Translates a mask of permissions into its enumeration values equivalentsstatic intpermissionsToFileType(int perms) Converts a POSIX permissions mask to a file type valuestatic NavigableMap<String, Object> static NavigableMap<String, byte[]> readExtensions(Buffer buffer) static FileTimeDecodes aFileTimevalue from a bufferstatic StringresolveStatusMessage(int subStatus) static intReturns 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 aFileTimevalue into a buffer
-
Field Details
-
DEFAULT_SUBSTATUS_MESSAGE
-
-
Constructor Details
-
SftpHelper
private SftpHelper()
-
-
Method Details
-
getEndOfFileIndicatorValue
Retrieves the end-of-file indicator forSSH_FXP_DATAresponses, provided the version is at least 6, and the buffer has enough available data- Parameters:
buffer- TheBufferto retrieve the data fromversion- The SFTP version being used- Returns:
- The indicator value -
nullif none retrieved - See Also:
-
getEndOfListIndicatorValue
Retrieves the end-of-list indicator forSSH_FXP_NAMEresponses, provided the version is at least 6, and the buffer has enough available data- Parameters:
buffer- TheBufferto retrieve the data fromversion- The SFTP version being used- Returns:
- The indicator value -
nullif none retrieved - See Also:
-
indicateEndOfNamesList
Appends the end-of-list=TRUEindicator forSSH_FXP_NAMEresponses, provided the version is at least 6 and the feature is enabled- Parameters:
buffer- TheBufferto append the indicatorversion- The SFTP version being usedresolver- ThePropertyResolverto query whether to enable the feature- Returns:
- The actual indicator value used -
nullif 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_NAMEresponses, provided the version is at least 6, the feature is enabled and the indicator value is notnull- Parameters:
buffer- TheBufferto append the indicatorversion- The SFTP version being usedresolver- ThePropertyResolverto query whether to enable the featureindicatorValue- The indicator value -nullmeans don't append the indicator- Returns:
- The actual indicator value used -
nullif 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 ofBufferbeing updated- Parameters:
buffer- The target buffer instanceversion- The actual version - must beSftpConstants.SFTP_V3attributes- TheMapof attributes- Returns:
- The updated buffer
-
writeAttrsV4
Writes the retrieved file / directory attributes in V4+ format- Type Parameters:
B- Type ofBufferbeing updated- Parameters:
buffer- The target buffer instanceversion- The actual version - must be at leastSftpConstants.SFTP_V4attributes- TheMapof attributes- Returns:
- The updated buffer
-
writeAttributes
public static <B extends Buffer> B writeAttributes(B buffer, SftpClient.Attributes attributes, int sftpVersion) -
getBool
- Parameters:
bool- TheBooleanvalue- Returns:
trueit the argument is non-nulland 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-trueif this is a normal fileisDir-trueif this is a directoryisLnk-trueif this is a symbolic linkperms- The file / folder's accessPosixFilePermissions- 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_xxxvalues
-
fileTypeToPermission
public static int fileTypeToPermission(int type) Converts a file type into a POSIX permission mask value- Parameters:
type- File type - seeSSH_FILEXFER_TYPE_xxxvalues- 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
Setof the equivalentPosixFilePermissions
-
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_TYPEvalue- Returns:
- The matching
AclEntryTypeornullif 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_TYPEor negative ifnullor unknown type
-
encodeAclFlags
-
encodeAclMask
-
writeTime
Encodes aFileTimevalue into a buffer- Type Parameters:
B- Type ofBufferbeing updated- Parameters:
buffer- The target buffer instanceversion- The encoding versionflags- The encoding flagstime- The value to encode- Returns:
- The updated buffer
-
readTime
Decodes aFileTimevalue from a buffer- Parameters:
buffer- The sourceBufferversion- 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
Stringrepresenting the "long" file name as per SFTP version 3 - section 7
-