Page updated Nov 16, 2023

List files

You can list all files uploaded under a given path.

This will list all files located under path album that:

  • have private access level
  • are in the root of album/ (the result doesn't include files under any sub path)
import 'package:amplify_flutter/amplify_flutter.dart'; import 'package:amplify_storage_s3/amplify_storage_s3.dart'; Future<void> listAlbum() async { try { String? nextToken; bool hasNextPage; do { final result = await Amplify.Storage.list( path: 'album/', options: StorageListOptions( accessLevel: StorageAccessLevel.private, pageSize: 50, nextToken: nextToken, pluginOptions: const S3ListPluginOptions( excludeSubPaths: true, ), ), ).result; safePrint('Listed items: ${result.items}'); nextToken = result.nextToken; hasNextPage = result.hasNextPage; } while (hasNextPage); } on StorageException catch (e) { safePrint('Error listing files: ${e.message}'); rethrow; } }
1import 'package:amplify_flutter/amplify_flutter.dart';
2import 'package:amplify_storage_s3/amplify_storage_s3.dart';
3
4Future<void> listAlbum() async {
5 try {
6 String? nextToken;
7 bool hasNextPage;
8 do {
9 final result = await Amplify.Storage.list(
10 path: 'album/',
11 options: StorageListOptions(
12 accessLevel: StorageAccessLevel.private,
13 pageSize: 50,
14 nextToken: nextToken,
15 pluginOptions: const S3ListPluginOptions(
16 excludeSubPaths: true,
17 ),
18 ),
19 ).result;
20 safePrint('Listed items: ${result.items}');
21 nextToken = result.nextToken;
22 hasNextPage = result.hasNextPage;
23 } while (hasNextPage);
24 } on StorageException catch (e) {
25 safePrint('Error listing files: ${e.message}');
26 rethrow;
27 }
28}

Pagination is enabled by default. The default pageSize is 1000 if it is not set in the StorageListOptions.

You can also list all files under a given path without pagination by using the pluginOptions and S3ListPluginOptions.listAll() constructor.

This will list all public files (i.e. those with guest access level):

import 'package:amplify_flutter/amplify_flutter.dart'; import 'package:amplify_storage_s3/amplify_storage_s3.dart'; Future<void> listAllWithGuestAccessLevel() async { try { final result = await Amplify.Storage.list( options: const StorageListOptions( accessLevel: StorageAccessLevel.guest, pluginOptions: S3ListPluginOptions.listAll(), ), ).result; safePrint('Listed items: ${result.items}'); } on StorageException catch (e) { safePrint('Error listing files: ${e.message}'); rethrow; } }
1import 'package:amplify_flutter/amplify_flutter.dart';
2import 'package:amplify_storage_s3/amplify_storage_s3.dart';
3
4Future<void> listAllWithGuestAccessLevel() async {
5 try {
6 final result = await Amplify.Storage.list(
7 options: const StorageListOptions(
8 accessLevel: StorageAccessLevel.guest,
9 pluginOptions: S3ListPluginOptions.listAll(),
10 ),
11 ).result;
12
13 safePrint('Listed items: ${result.items}');
14 } on StorageException catch (e) {
15 safePrint('Error listing files: ${e.message}');
16 rethrow;
17 }
18}