Я хочу прочитать определенный файл из корзины S3.В моей корзине S3 у меня будет очень много объектов (каталогов и подкаталогов).Я хочу пройти через все объекты и должен читать только этот файл.
Я пытаюсь использовать следующий код:
val s3Client: AmazonS3Client = getS3Client()
try {
log.info("Listing objects from S3")
var counter = 0
val listObjectsRequest = new ListObjectsRequest()
.withBucketName(bucketName)
.withMaxKeys(2)
.withPrefix("Test/"+"Client_cd" + "/"+"DM1"+"/")
.withMarker("Test/"+"Client_cd" + "/"+"DM1"+"/")
var objectListing: ObjectListing = null
do {
objectListing = s3Client.listObjects(listObjectsRequest)
import scala.collection.JavaConversions._
for (objectSummary <- objectListing.getObjectSummaries) {
println( objectSummary.getKey + "\t" + StringUtils.fromDate(objectSummary.getLastModified))
}
listObjectsRequest.setMarker(objectListing.getNextMarker())
}
while (objectListing.isTruncated())
}
catch {
case e: Exception => {
log.error("Failed listing files. ", e)
throw e
}
}
По этому пути я должен читать только файлы .gz из папок последнего месяца.Путь к файлу:
"Mybucket/Test/Client_cd/Dm1/20181010_xxxxx/*.gz"
Здесь я должен передать Client_cd в качестве параметра для конкретного клиента.
Как отфильтровать объекты и получить определенные файлы?