gpt4 book ai didi

java - 列出AWS S3存储桶的内容

转载 作者:行者123 更新时间:2023-11-30 02:16:57 27 4
gpt4 key购买 nike

我有一个具有以下结构或层次结构的 AWS S3:

  • 客户/姓名/名字/123.gz

  • 客户/姓名/名字/456.gz

  • 客户/姓名/名字/789.gz

我需要使用 java sdk 获取 customer/name/firstname 中所有 gz 文件的数量。

能给我一份关于如何执行此操作的 Java 代码吗?

最佳答案

有多种方法可以从 S3 获取文件列表。这是其中之一:

/**
* @bucketName bucket name (i.e. customer)
* @path path within given bucket (i.e. name/firstname)
* @pattern pattern that matches required files (i.e. "\\w+\\.gz")
*/
private List<String> getFileList(String bucketName, String path, Pattern pattern) throws AmazonS3Exception {
ListObjectsV2Request request = createRequest(bucketName, path);

return s3.listObjectsV2(request).getObjectSummaries().stream()
.map(file -> FilenameUtils.getName(file.getKey()))
.filter(fileName -> pattern.matcher(fileName).matches())
.sorted()
.collect(Collectors.toList());
}

private static ListObjectsV2Request createRequest(String bucketName, String path) {
ListObjectsV2Request request = new ListObjectsV2Request();
request.setPrefix(path);
request.withBucketName(bucketName);
return request;
}

P.S. 我认为您的主目录中已拥有 S3 凭证,并已成功初始化 AmazonS3 s3 实例。

关于java - 列出AWS S3存储桶的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48039896/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com