java - Java 中检查 S3 存储桶是否具有与通配符模式匹配的键的对象的方法

标签 java scala amazon-s3 jets3t aws-java-sdk

从 Scala 或 Java 程序中检查 S3 存储桶是否具有与特定关键模式匹配的对象的好方法是什么?也就是说,如果我有一个名为“CsvBucket”的存储桶,我如何检查它是否包含 key 与模式“processed/files/2015/8/*.csv”匹配的对象?

谢谢

最佳答案

由于 S3 对象键只是 String,因此您可以迭代它们并使用正则表达式测试每个键。也许是这样的(使用 jets3t 库):

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 ...
    }
}

关于java - Java 中检查 S3 存储桶是否具有与通配符模式匹配的键的对象的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32406729/

相关文章:

Java - 数组创建和内存使用

java - ArrayIndexOutOfBoundsException 错误 : 0

spring - Scala 与 Spring : Constructor autowiring

scala - 如何避免子类的伴生对象中的代码重复

amazon-s3 - 如何获取亚马逊S3上文件的md5sum

java - 如何在部分刷新之前更新 Backing Bean

java - 如何使用模式获取 DOM 中的下一个可用节点?

scala - 如何处理事件源应用程序中的域更改?

postgresql - 从快照恢复后 RDS 实例速度慢得无法使用

php - 使用ffmpeg直接上传到s3?