Sample code for 30+ languages & platforms
Android™

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 Android™ Downloads

Android™
// Important: Don't forget to include the call to System.loadLibrary
// as shown at the bottom of this code sample.
package com.test;

import android.app.Activity;
import com.chilkatsoft.*;

import android.widget.TextView;
import android.os.Bundle;

public class SimpleActivity extends Activity {

  private static final String TAG = "Chilkat";

  // Called when the activity is first created.
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    boolean success = false;

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

    CkSFtp sftp = new CkSFtp();

    // Connect to the AWS SFTP server.
    // Change the domain to your value.
    String domain = "s-123456df999999fab.server.transfer.eu-west-2.amazonaws.com";
    int port = 22;
    success = sftp.Connect(domain,port);
    if (success == false) {
        Log.i(TAG, sftp.lastErrorText());
        return;
        }

    // Load your AWS SFTP private key PEM file..
    CkSshKey sshKey = new CkSshKey();
    String keyText = sshKey.loadText("qa_data/pem/s3_sftp_privateKey.pem");
    if (sshKey.get_LastMethodSuccess() != true) {
        Log.i(TAG, sshKey.lastErrorText());
        return;
        }

    success = sshKey.FromOpenSshPrivateKey(keyText);
    if (success == false) {
        Log.i(TAG, sshKey.lastErrorText());
        return;
        }

    // Authenticate with the SSH server using the private key.
    success = sftp.AuthenticatePk("myUsername",sshKey);
    if (success == false) {
        Log.i(TAG, sftp.lastErrorText());
        return;
        }

    // After authenticating, the SFTP subsystem must be initialized:
    success = sftp.InitializeSftp();
    if (success == false) {
        Log.i(TAG, sftp.lastErrorText());
        return;
        }

    // Upload from the local file to the SSH server.
    // Important -- the remote filepath is the 1st argument,
    // the local filepath is the 2nd argument;
    String remoteFilePath = "hamlet.xml";
    String localFilePath = "c:/temp/hamlet.xml";

    success = sftp.UploadFileByName(remoteFilePath,localFilePath);
    if (success == false) {
        Log.i(TAG, sftp.lastErrorText());
        return;
        }

    Log.i(TAG, "Success.");

  }

  static {
      System.loadLibrary("chilkat");

      // Note: If the incorrect library name is passed to System.loadLibrary,
      // then you will see the following error message at application startup:
      //"The application <your-application-name> has stopped unexpectedly. Please try again."
  }
}