Sample code for 30+ languages & platforms
DataFlex

AWS Transfer for SFTP (Amazon S3)

See more SFTP Examples

Once you've setup your AWS Transfer for SFTP in the AWS Console, interacting with it is no different than any other SSH/SFTP server. AWS will provide a private key in PEM format. It is used for authentication (instead of a password).

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoSftp
    String sDomain
    Integer iPort
    Variant vSshKey
    Handle hoSshKey
    String sKeyText
    String sRemoteFilePath
    String sLocalFilePath
    String sTemp1
    Boolean bTemp1

    Move False To iSuccess

    // This example assumes the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    Get Create (RefClass(cComChilkatSFtp)) To hoSftp
    If (Not(IsComObjectCreated(hoSftp))) Begin
        Send CreateComObject of hoSftp
    End

    // Connect to the AWS SFTP server.
    // Change the domain to your value.
    Move "s-123456df999999fab.server.transfer.eu-west-2.amazonaws.com" To sDomain
    Move 22 To iPort
    Get ComConnect Of hoSftp sDomain iPort To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoSftp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Load your AWS SFTP private key PEM file..
    Get Create (RefClass(cComChilkatSshKey)) To hoSshKey
    If (Not(IsComObjectCreated(hoSshKey))) Begin
        Send CreateComObject of hoSshKey
    End
    Get ComLoadText Of hoSshKey "qa_data/pem/s3_sftp_privateKey.pem" To sKeyText
    Get ComLastMethodSuccess Of hoSshKey To bTemp1
    If (bTemp1 <> True) Begin
        Get ComLastErrorText Of hoSshKey To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get ComFromOpenSshPrivateKey Of hoSshKey sKeyText To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoSshKey To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Authenticate with the SSH server using the private key.
    Get pvComObject of hoSshKey to vSshKey
    Get ComAuthenticatePk Of hoSftp "myUsername" vSshKey To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoSftp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // After authenticating, the SFTP subsystem must be initialized:
    Get ComInitializeSftp Of hoSftp To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoSftp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Upload from the local file to the SSH server.
    // Important -- the remote filepath is the 1st argument,
    // the local filepath is the 2nd argument;
    Move "hamlet.xml" To sRemoteFilePath
    Move "c:/temp/hamlet.xml" To sLocalFilePath

    Get ComUploadFileByName Of hoSftp sRemoteFilePath sLocalFilePath To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoSftp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Showln "Success."


End_Procedure