Class Reference
IRIS for UNIX 2024.1.2
InterSystems: The power behind what matters   
Documentation  Search
  [USER] >  [EnsLib] >  [FTP] >  [CommonSSH]
Private  Storage   

abstract class EnsLib.FTP.CommonSSH extends %RegisteredObject

Adapter that receives files via the FTP protocol.

Inventory

Parameters Properties Methods Queries Indices ForeignKeys Triggers
1 23 22 1


Summary

Properties
%SFTPPassphraseCredentialsObj ConnectTimeout FTPPort FTPServer
SFTPAuthenticationMethods SFTPFileAccessMode SFTPInteractiveDTL SFTPLocalCharset
SFTPPassphraseCredentials SFTPPrivateKeyFile SFTPPublicKeyFile SFTPRemoteCharset
SFTPSetFileAccessModeByClient StayConnected TranslateTable

Methods
%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

Subclasses
EnsLib.FTP.Common

Parameters

• 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,SFTPRemoteCharset:SFTP:selector?context={Ens.ContextSearch/CharacterSets?internalTables=1},SFTPLocalCharset:SFTP:selector?context={Ens.ContextSearch/CharacterSets?internalTables=1}";

Properties

• 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
kp
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 SFTPLocalCharset as %String [ InitialExpression = $CASE($system.Version.GetOS(),"Windows":"",:"UTF8") ];
Character set used by the local system for filename encoding.
For Windows the default is the empty setting which will leave local filenames as Unicode.
For Unix the default is to convert to UTF8.
This setting is used to set the LocalCharset in the %Net.SSH.Session object.
• 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 SFTPRemoteCharset as %String [ InitialExpression = "UTF8" ];
Character set for filenames used by the remote server.
Defaults to UTF8.
Set to empty string for no character set translation for filenames.
This setting is used to set the RemoteCharset property in the %Net.SSH.Session object.
• 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.

Methods

• 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)

Queries

• 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.


Copyright (c) 2025 by InterSystems Corporation. Cambridge, Massachusetts, U.S.A. All rights reserved. Confidential property of InterSystems Corporation.