Использование библиотеки здесь:
https://github.com/Rhinofly/play-s3
Вы должны быть способны сделать что-то вроде это:
import concurrent.ExecutionContext.Implicits._
val bucket = S3("bucketName")
val result = bucket.list
result.map {
case Left(error) => throw new Exception("Error: " + x)
case Right(list) =>
list.foreach {
case BucketItem(name, isVirtual) => //...
}
}
Вам придется немного подкорректировать это в отношении ваших учетных данных, но примеры показывают, как это сделать.