You can list all of the objects uploaded under a given prefix by setting the pageSize. If the pageSize is set lower than the total file size available,
A single `Storage.list` call only returns a subset of all the files. To list all the files with multiple calls, the user can use the nextToken from the previous call response.
This will list all public files:
```java
StoragePagedListOptions options = StoragePagedListOptions.builder()
.setPageSize(1000)
.build();
Amplify.Storage.list(
"",
options,
result -> {
for (StorageItem item : result.getItems()) {
Log.i("MyAmplifyApp", "Item: " + item.getKey());
}
Log.i("MyAmplifyApp", "Next Token: " + result.getNextToken());
},
error -> Log.e("MyAmplifyApp", "List failure", error);
);
```
```kotlin
val options = StoragePagedListOptions.builder()
.setPageSize(1000)
.build()
Amplify.Storage.list("", options,
{ result ->
result.items.forEach { item ->
Log.i("MyAmplifyApp", "Item: ${item.key}")
}
Log.i("MyAmplifyApp", "Next Token: ${result.nextToken}")
},
{ Log.e("MyAmplifyApp", "List failure", it) }
)
```
```kotlin
val options = StoragePagedListOptions.builder()
.setPageSize(1000)
.build()
try {
val result = Amplify.Storage.list("", options)
result.items.forEach {
Log.i("MyAmplifyApp", "Item: $it")
}
Log.i("MyAmplifyApp", "next token: ${result.nextToken}")
} catch (error: StorageException) {
Log.e("MyAmplifyApp", "List failure", error)
}
```
```java
StoragePagedListOptions options = StoragePagedListOptions.builder()
.setPageSize(1000)
.build();
RxAmplify.Storage.list("", options)
.subscribe(
result -> {
for (StorageItem item : result.getItems()) {
Log.i("MyAmplifyApp", "Item: " + item.getKey());
}
Log.i("MyAmplifyApp", "Next Token: " + result.getNextToken());
},
error -> Log.e("MyAmplifyApp", "List failure", error);
);
```
Note: The range of pageSize can be from 1 - 1000.
You can also list private or protected files by passing options. For example, to list all protected files owned by a user identified by the ID `otherUserID`:
```java
StoragePagedListOptions options = StoragePagedListOptions.builder()
.accessLevel(StorageAccessLevel.PROTECTED)
.targetIdentityId("otherUserID")
.setPageSize(1000)
.build();
Amplify.Storage.list(
"",
options,
result -> {
for (StorageItem item : result.getItems()) {
Log.i("MyAmplifyApp", "Item: " + item.getKey());
}
Log.i("MyAmplifyApp", "Next Token: " + result.getNextToken());
},
error -> Log.e("MyAmplifyApp", "List failure", error);
);
```
```kotlin
val options = StoragePagedListOptions.builder()
.accessLevel(StorageAccessLevel.PROTECTED)
.targetIdentityId("otherUserID")
.setPageSize(1000)
.build()
Amplify.Storage.list("", options,
{ result ->
result.items.forEach { item ->
Log.i("MyAmplifyApp", "Item: ${item.key}")
}
Log.i("MyAmplifyApp", "Next Token: ${result.nextToken}")
},
{ Log.e("MyAmplifyApp", "List failure", it) }
)
```
```kotlin
val options = StoragePagedListOptions.builder()
.accessLevel(StorageAccessLevel.PROTECTED)
.targetIdentityId("otherUserID")
.setPageSize(1000)
.build()
try {
val result = Amplify.Storage.list("", options)
result.items.forEach {
Log.i("MyAmplifyApp", "Item: $it")
}
Log.i("MyAmplifyApp", "next token: ${result.nextToken}")
} catch (error: StorageException) {
Log.e("MyAmplifyApp", "List failure", error)
}
```
```java
StoragePagedListOptions options = StoragePagedListOptions.builder()
.accessLevel(StorageAccessLevel.PROTECTED)
.targetIdentityId("otherUserID")
.setPageSize(1000)
.build();
RxAmplify.Storage.list("", options)
.subscribe(
result -> {
for (StorageItem item : result.getItems()) {
Log.i("MyAmplifyApp", "Item: " + item.getKey());
}
Log.i("MyAmplifyApp", "Next Token: " + result.getNextToken());
},
error -> Log.e("MyAmplifyApp", "List failure", error);
);
```