Open Exchange
Global Masters
Home / Class Reference / ENSLIB namespace / EnsLib.FTP.CommonSSH
Private  Storage   


abstract class EnsLib.FTP.CommonSSH extends

Adapter that receives files via the FTP protocol.


Parameters Properties Methods Queries Indices ForeignKeys Triggers
1 21 22 1


%SFTPPassphraseCredentialsObj ConnectTimeout FTPPort FTPServer
SFTPAuthenticationMethods SFTPFileAccessMode SFTPInteractiveDTL SFTPPassphraseCredentials
SFTPPrivateKeyFile SFTPPublicKeyFile SFTPSetFileAccessModeByClient StayConnected

%AddToSaveSet %ClassIsLatestVersion %ClassName %ConstructClone
%DispatchClassMethod %DispatchGetModified %DispatchGetProperty %DispatchMethod
%DispatchSetModified %DispatchSetMultidimProperty %DispatchSetProperty %Extends
%GetParameter %IsA %IsModified %New
%NormalizeObject %ObjectModified %OriginalNamespace %PackageName
%RemoveFromSaveSet %SerializeObject %SetModified %ValidateObject
AuthenticateSSH ConnectSSH FileListSSHClose FileListSSHExecute
FileListSSHFetch SFTPPassphraseCredentialsSet System TestConnectionSSH



• parameter SETTINGS = "FTPServer:Basic,FTPPort:Basic,Credentials:Basic:credentialsSelector,FilePath:Basic,Charset::selector?context={Ens.ContextSearch/CharacterSets},StayConnected:Connection,ConnectTimeout:Connection,SFTPAuthenticationMethods:SFTP,SFTPPublicKeyFile:SFTP,SFTPPrivateKeyFile:SFTP,SFTPPassphraseCredentials:SFTP:credentialsSelector,SFTPInteractiveDTL:SFTP,SFTPFileAccessMode:SFTP,SFTPSetFileAccessModeByClient:SFTP";


• property %SFTPPassphraseCredentialsObj as Ens.Config.Credentials;
This is the credentials object containing the values to be used for the SFTPPassphraseCredentials
• property ConnectTimeout as %Numeric(MINVAL=0) [ InitialExpression = 5 ];
Number of seconds to wait on each connection attempt
• property FTPPort as %Integer;
TCP Port on the FTP Server to connect to. For FTP the standard port is 21 and for SFTP it is 22. Leave this field blank to use the appropriate standard value.
• property FTPServer as %String(MAXLEN=1000);
FTP Server to connect to
• property SFTPAuthenticationMethods as %String(MAXLEN=10);
AuthenticationMethods supported:
Empty - use public/private key if defined, otherwise use username and password from Credentials
p - use username and password from Credentials
k - use public/private key
i - use Interactive (Challenge/Response)
For multiple combine in the order required, for example
This will lead to public/private key authentication first followed by username and password
• property SFTPFileAccessMode as %String [ InitialExpression = "0600" ];
SFTP File Access Mode specifies the access permissions to assign to the file on the remote system when transferred.
It can be specified as either octal e.g. 0600 or symbolic such as u+rw,g+r
The default is 0600. If specifying octal 4 digits are required.
For symbolic and specifying all use 'ugo' and not 'a' e.g ugo+rw.
• property SFTPInteractiveDTL as %String(MAXLEN=256);
If specified this is the DTL to used to handle the Interactive Authentication - also known as the keyboard-interactive or Challenge/Response authentication. This can be a DTL to create an array of answers for the challenge response authentication See Ens.SSH.InteractiveAuth.DTL Leave blank to return just Credentials password
• property SFTPPassphraseCredentials as %String;
This can be used to specify different credentials entry from which the password will be used as the Key authentication Passphrase. If this is blank the Credentials setting will be used.
This separate setting allows having both Public Key and Password authentication
• property SFTPPrivateKeyFile as %String(MAXLEN=1000);
File path to a file containing the SSH private key certificate.
The password from the Credentials setting will be used as the passphrase for the private key unless SFTPPassphraseCredentials is specified, in which case the password from that will be used as the passphrase for the private key.
• property SFTPPublicKeyFile as %String(MAXLEN=1000);
File path to a file containing the SSH public key certificate
• property SFTPSetFileAccessModeByClient as %Boolean [ InitialExpression = 1 ];
When Putting a file with requested SFTP File Access Mode the SFTP server may apply a umask. A separate SetPermissions call that might not be modified by a umask can be made to apply the requested permissions.
The default is to use an extra SetPermissions call.
If the SFTP File Access Mode is 0600 a SetPermissions call will not be made irrespective of this setting.
Note - this call may not succeed if the target file has already been collected on the server. A Warning will be issued if the SetPermissions call errors.
• property StayConnected as %Numeric(MINVAL=-1) [ InitialExpression = -1 ];
If non-zero, stay connected to the remote system between handling Requests until idle for this number of seconds. A value of -1 means never disconnect.
• property TranslateTable as %String;
The translate table to be used when reading or writing files.


• method AuthenticateSSH() as %Status
• method ConnectSSH(pTimeout As %Numeric = 15, pInbound As %Boolean = 0, pSFTPPort As %Integer) as %Status
• classmethod FileListSSHClose(QHandle As %Binary) as %Status
• classmethod FileListSSHExecute(ByRef QHandle As %Binary, adapter As Ens.Adapter, directory As %String, wildcards As %String, dirsOrNoDirs As %Boolean = 0, semaphoreSpec As %String = "") as %Status
• classmethod FileListSSHFetch(ByRef QHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0) as %Status
• method SFTPPassphraseCredentialsSet(pInVal As %String) as %Status
This is a Set accessor method for the SFTPPassphraseCredentials property.
• method System(ByRef System As %String) as %Boolean
• method TestConnectionSSH(pInbound)


• query FileListSSH(adapter As Ens.Adapter, directory As %String(MAXLEN=""), wildcards As %String, dirsOrNoDirs As %Boolean = 0, semaphoreSpec As %String = "")
Selects Name As %String, Type As %String, Size As %BigInt, DateCreated As %TimeStamp, DateModified As %TimeStamp, ItemName As %String, ItemDir As %String, SemaphoreName As %String
This query is a shadow of the FileSet query in %Library.File, using an interface to the Adapter and skipping directories The dirsOrNoDirs argument if 0 (the default) will exclude directory entries, or if 1 will return directory entries only.