Page updated Nov 9, 2023

Upload files

Amplify Android v1 is now in Maintenance Mode until May 31st, 2024. This means that we will continue to include updates to ensure compatibility with backend services and security. No new features will be introduced in v1.

Please use the latest version (v2) of Amplify Library for Android to get started.

If you are currently using v1, follow these instructions to upgrade to v2.

Amplify allows you to upload Files and InputStreams.

Upload InputStream

To upload data to S3 from an InputStream:

private void uploadInputStream() { try { InputStream exampleInputStream = getContentResolver().openInputStream(uri); Amplify.Storage.uploadInputStream( "ExampleKey", exampleInputStream, result -> Log.i("MyAmplifyApp", "Successfully uploaded: " + result.getKey()), storageFailure -> Log.e("MyAmplifyApp", "Upload failed", storageFailure) ); } catch (FileNotFoundException error) { Log.e("MyAmplifyApp", "Could not find file to open for input stream.", error); } }
1private void uploadInputStream() {
2 try {
3 InputStream exampleInputStream = getContentResolver().openInputStream(uri);
4
5 Amplify.Storage.uploadInputStream(
6 "ExampleKey",
7 exampleInputStream,
8 result -> Log.i("MyAmplifyApp", "Successfully uploaded: " + result.getKey()),
9 storageFailure -> Log.e("MyAmplifyApp", "Upload failed", storageFailure)
10 );
11 } catch (FileNotFoundException error) {
12 Log.e("MyAmplifyApp", "Could not find file to open for input stream.", error);
13 }
14}

Upload files

To upload to S3 from a data object, specify the key and the file to be uploaded.

private void uploadFile() { File exampleFile = new File(getApplicationContext().getFilesDir(), "ExampleKey"); try { BufferedWriter writer = new BufferedWriter(new FileWriter(exampleFile)); writer.append("Example file contents"); writer.close(); } catch (Exception exception) { Log.e("MyAmplifyApp", "Upload failed", exception); } Amplify.Storage.uploadFile( "ExampleKey", exampleFile, result -> Log.i("MyAmplifyApp", "Successfully uploaded: " + result.getKey()), storageFailure -> Log.e("MyAmplifyApp", "Upload failed", storageFailure) ); }
1private void uploadFile() {
2 File exampleFile = new File(getApplicationContext().getFilesDir(), "ExampleKey");
3
4 try {
5 BufferedWriter writer = new BufferedWriter(new FileWriter(exampleFile));
6 writer.append("Example file contents");
7 writer.close();
8 } catch (Exception exception) {
9 Log.e("MyAmplifyApp", "Upload failed", exception);
10 }
11
12 Amplify.Storage.uploadFile(
13 "ExampleKey",
14 exampleFile,
15 result -> Log.i("MyAmplifyApp", "Successfully uploaded: " + result.getKey()),
16 storageFailure -> Log.e("MyAmplifyApp", "Upload failed", storageFailure)
17 );
18}

To track progress of the upload, use the uploadFile API that includes a progress listener callback.

private void uploadFile() { File exampleFile = new File(getApplicationContext().getFilesDir(), "ExampleKey"); try { BufferedWriter writer = new BufferedWriter(new FileWriter(exampleFile)); writer.append("Example file contents"); writer.close(); } catch (Exception exception) { Log.e("MyAmplifyApp", "Upload failed", exception); } Amplify.Storage.uploadFile( "ExampleKey", exampleFile, StorageUploadFileOptions.defaultInstance(), progress -> Log.i("MyAmplifyApp", "Fraction completed: " + progress.getFractionCompleted()), result -> Log.i("MyAmplifyApp", "Successfully uploaded: " + result.getKey()), storageFailure -> Log.e("MyAmplifyApp", "Upload failed", storageFailure) ); }
1private void uploadFile() {
2 File exampleFile = new File(getApplicationContext().getFilesDir(), "ExampleKey");
3
4 try {
5 BufferedWriter writer = new BufferedWriter(new FileWriter(exampleFile));
6 writer.append("Example file contents");
7 writer.close();
8 } catch (Exception exception) {
9 Log.e("MyAmplifyApp", "Upload failed", exception);
10 }
11
12 Amplify.Storage.uploadFile(
13 "ExampleKey",
14 exampleFile,
15 StorageUploadFileOptions.defaultInstance(),
16 progress -> Log.i("MyAmplifyApp", "Fraction completed: " + progress.getFractionCompleted()),
17 result -> Log.i("MyAmplifyApp", "Successfully uploaded: " + result.getKey()),
18 storageFailure -> Log.e("MyAmplifyApp", "Upload failed", storageFailure)
19 );
20}