SFTP file transfer interface
You can use the SFTP file transfer interface in formulas in Infor Public Sector
to upload and download files using SFTP (Secure File Transfer Protocol).
First, use the
node in the FileManagement configuration to connect to the SFTP server. You must specify the host address and a user name and password.You can then use the interface in formulas. The SFTP file transfer interface
(Hansen.Core.FileTransfers.ISFTPFileTransfer
) supports these methods:
Method | Description | Parameters |
---|---|---|
Upload | Uploads a file to the SFTP server. |
|
Download | Retrieves a file from the SFTP server. |
|
Delete | Deletes a file or directory from the SFTP server. |
|
Rename | Renames a file or directory on the SFTP server. |
|
Exists | Queries whether a specified file or directory exists on the SFTP server. |
|
Move | Changes the location of a file on the SFTP server. |
|
GetInfo | Gets basic information about a file or directory on the SFTP server. |
|
GetDirectoryContents | Lists the contents of a directory on the SFTP server. |
|
CreateDirectory | Creates a directory on the SFTP server. |
|
Examples
This sample formula shows how to upload a file:
Dim fileService As New FileExplorerService
Dim fileTransferService As Hansen.Core.FileTransfers.IFileTransferService =
ServerApplication.Resolve(Of Hansen.Core.FileTransfers.IFileTransferService)
Dim SFTPFileTransfer As Hansen.Core.FileTransfers.ISFTPFileTransfer =
fileTransferService.GetFileTransfer(Of Hansen.Core.FileTransfers.ISFTPFileTransfer)
(Hansen.Core.FileTransfers.FileTransferBuiltInType.SFTP, "myauthprofile")
Dim filePath As String = "Log\\File.txt"
If fileService.IsFileReadable(filePath) Then
Using fileStream As IO.Stream = fileService.OpenWrite(filePath)
Dim bytesToWrite = New UTF8Encoding(true).GetBytes("Hello World!")
Dim buffer(bytesToWrite.Length) As Byte
fileStream.Write(bytesToWrite, 0, bytesToWrite.Length)
End Using
Using fileStream As IO.Stream = fileService.OpenRead(filePath)
SFTPFileTransfer.Upload("./test_file1.txt", fileStream)
End Using
End If
This sample formula shows how to download a file:
Dim fileService As New FileExplorerService
Dim fileTransferService As Hansen.Core.FileTransfers.IFileTransferService =
ServerApplication.Resolve(Of Hansen.Core.FileTransfers.IFileTransferService)
Dim SFTPFileTransfer As Hansen.Core.FileTransfers.ISFTPFileTransfer =
fileTransferService.GetFileTransfer(Of Hansen.Core.FileTransfers.ISFTPFileTransfer)
(Hansen.Core.FileTransfers.FileTransferBuiltInType.SFTP, "myauthprofile")
Dim remoteFilePath As String = "./Test_PDF.jpg"
Dim localFilePath As String = "Custom/Test_PDF_download.jpg"
Using SFTPStream As IO.Stream = SFTPFileTransfer.Download(remoteFilePath)
Using fileStream As IO.Stream = fileService.OpenWrite(localFilePath)
SFTPStream.CopyTo(fileStream)
End Using
End Using
This sample formula shows how to delete a file:
Dim fileTransferService As Hansen.Core.FileTransfers.IFileTransferService =
ServerApplication.Resolve(Of Hansen.Core.FileTransfers.IFileTransferService)
Dim SFTPFileTransfer As Hansen.Core.FileTransfers.ISFTPFileTransfer =
fileTransferService.GetFileTransfer(Of Hansen.Core.FileTransfers.ISFTPFileTransfer)
(Hansen.Core.FileTransfers.FileTransferBuiltInType.SFTP, "myauthprofile")
Dim remoteFileOrDirectoryPath= "./Test_PDF.pdf"
SFTPFileTransfer.Delete(remoteFileOrDirectoryPath)
This sample formula shows how to rename a file:
Dim fileTransferService As Hansen.Core.FileTransfers.IFileTransferService =
ServerApplication.Resolve(Of Hansen.Core.FileTransfers.IFileTransferService)
Dim SFTPFileTransfer As Hansen.Core.FileTransfers.ISFTPFileTransfer =
fileTransferService.GetFileTransfer(Of Hansen.Core.FileTransfers.ISFTPFileTransfer)
(Hansen.Core.FileTransfers.FileTransferBuiltInType.SFTP, "myauthprofile")
Dim remoteFileOrDirectoryPath= "./Test_PDF.pdf"
Dim newName= "a_renamed_pdf.pdf"
SFTPFileTransfer.Rename(remoteFileOrDirectoryPath, newName)
This sample formula shows how to check if a file exists:
Dim fileTransferService As Hansen.Core.FileTransfers.IFileTransferService =
ServerApplication.Resolve(Of Hansen.Core.FileTransfers.IFileTransferService)
Dim SFTPFileTransfer As Hansen.Core.FileTransfers.ISFTPFileTransfer =
fileTransferService.GetFileTransfer(Of Hansen.Core.FileTransfers.ISFTPFileTransfer)
(Hansen.Core.FileTransfers.FileTransferBuiltInType.SFTP, "myauthprofile")
Dim remoteFileOrDirectoryPath= "./Test_PDF.pdf"
Dim result = SFTPFileTransfer.Exists(remoteFileOrDirectoryPath)
This sample formula shows how to move a file:
Dim fileTransferService As Hansen.Core.FileTransfers.IFileTransferService =
ServerApplication.Resolve(Of Hansen.Core.FileTransfers.IFileTransferService)
Dim SFTPFileTransfer As Hansen.Core.FileTransfers.ISFTPFileTransfer =
fileTransferService.GetFileTransfer(Of Hansen.Core.FileTransfers.ISFTPFileTransfer)
(Hansen.Core.FileTransfers.FileTransferBuiltInType.SFTP, "myauthprofile")
Dim remoteFilePath= "./Test_PDF.pdf"
Dim newRemoteFilePath= "./tests/Test_PDF.pdf"
SFTPFileTransfer.Move(remoteFilePath, newRemoteFilePath)
This sample formula shows how to get information about a file:
Dim fileTransferService As Hansen.Core.FileTransfers.IFileTransferService =
ServerApplication.Resolve(Of Hansen.Core.FileTransfers.IFileTransferService)
Dim SFTPFileTransfer As Hansen.Core.FileTransfers.ISFTPFileTransfer =
fileTransferService.GetFileTransfer(Of Hansen.Core.FileTransfers.ISFTPFileTransfer)
(Hansen.Core.FileTransfers.FileTransferBuiltInType.SFTP, "myauthprofile")
Dim remoteFileOrDirectoryPath= "./Test_PDF.pdf"
Dim result = SFTPFileTransfer.GetInfo(remoteFileOrDirectoryPath)
This sample formula shows how to get the contents of a directory:
Dim fileTransferService As Hansen.Core.FileTransfers.IFileTransferService =
ServerApplication.Resolve(Of Hansen.Core.FileTransfers.IFileTransferService)
Dim SFTPFileTransfer As Hansen.Core.FileTransfers.ISFTPFileTransfer =
fileTransferService.GetFileTransfer(Of Hansen.Core.FileTransfers.ISFTPFileTransfer)
(Hansen.Core.FileTransfers.FileTransferBuiltInType.SFTP, "myauthprofile")
Dim remoteFileOrDirectoryPath= "."
Dim result = SFTPFileTransfer.GetDirectoryContents(remoteFileOrDirectoryPath)
This sample formula shows how to create a directory:
Dim fileTransferService As Hansen.Core.FileTransfers.IFileTransferService =
ServerApplication.Resolve(Of Hansen.Core.FileTransfers.IFileTransferService)
Dim SFTPFileTransfer As Hansen.Core.FileTransfers.ISFTPFileTransfer =
fileTransferService.GetFileTransfer(Of Hansen.Core.FileTransfers.ISFTPFileTransfer)
(Hansen.Core.FileTransfers.FileTransferBuiltInType.SFTP, "myauthprofile")
Dim remoteDirectoryPath= "/my_new_directory"
Dim result = SFTPFileTransfer.CreateDirectory(remoteDirectoryPath)