SFTP file transfer interface
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)