What is a good way from a Scala or Java program to check if an S3 bucket has objects matching a certain key pattern? That is, if i have a bucket named "CsvBucket" how can i check if it contains an object where the key matches the pattern "processed/files/2015/8/*.csv" ?
Thanks
Since S3 object keys are just String
s you can just iterate over them and test each using a regular expression. Perhaps something like this (using jets3t
library):
Pattern pattern = Pattern.compile(".*\\.csv");
// 'service' is an instance of S3Service
S3Bucket bucket = service.getBucket(bucketName);
S3Object[] files = service.listObjects(bucket, "processed/files/2015/8", null);
for (int i = 0; i < files.length; i++)
{
if (pattern.matches(files[i].getKey()))
{
// ... work with the file ...
}
}