Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AmazonS3-使用JavaAPI递归列出S3 bucket中的所有zip文件_Java_Amazon Web Services_Amazon S3_Sdk_Amazon - Fatal编程技术网

AmazonS3-使用JavaAPI递归列出S3 bucket中的所有zip文件

AmazonS3-使用JavaAPI递归列出S3 bucket中的所有zip文件,java,amazon-web-services,amazon-s3,sdk,amazon,Java,Amazon Web Services,Amazon S3,Sdk,Amazon,我在Amazon上有一个S3存储桶,试图递归地获取存储桶下文件夹中所有zip文件的列表 例如,我的zip文件的位置如下所示: bucket1/${user1}/${date1}/abc.zip bucket1/${user2}/${date2}/xyz.zip bucket1/${user3}/${date3}/mno.zip bucketName=bucket1 prefix=bucket1/ 下面是我的代码: final AmazonS3 amazonS3 = AmazonS3Utils

我在Amazon上有一个S3存储桶,试图递归地获取存储桶下文件夹中所有zip文件的列表

例如,我的zip文件的位置如下所示:

bucket1/${user1}/${date1}/abc.zip
bucket1/${user2}/${date2}/xyz.zip
bucket1/${user3}/${date3}/mno.zip

bucketName=bucket1
prefix=bucket1/
下面是我的代码:

final AmazonS3 amazonS3 = AmazonS3Utils.getAmazonS3Client();
final ListObjectsRequest listObjectsRequest = new ListObjectsRequest().withBucketName("bucket1")
                                                                            .withPrefix("bucket1/");

ObjectListing current = amazonS3.listObjects(listObjectsRequest);
final List<S3ObjectSummary> keyList = current.getObjectSummaries();

while (current.isTruncated()) 
{
   keyList.addAll(current.getObjectSummaries());
   current = amazonS3.listNextBatchOfObjects(current);
}

keyList.addAll(current.getObjectSummaries());
for(S3ObjectSummary summary : keyList)
{
    System.out.println(summary.getKey());
}
final AmazonS3 AmazonS3=AmazonS3Utils.getAmazonS3Client();
final ListObjectsRequest ListObjectsRequest=新ListObjectsRequest()。带BucketName(“bucket1”)
.带前缀(“bucket1/”);
ObjectListing current=amazonS3.listObjects(listObjectsRequest);
final List keyList=current.getObjectSummaries();
while(current.isTruncated())
{
addAll(current.getObjectSummaries());
当前=amazonS3.ListNextBatchOfObject(当前);
}
addAll(current.getObjectSummaries());
对于(S3ObjectSummary摘要:键列表)
{
System.out.println(summary.getKey());
}
但我得到了一张空名单


我做错什么了吗?有什么方法可以递归地从存储桶中获取zip文件列表吗?

我唯一能看到的是连接到S3存储桶。尝试以下方法可能会有所帮助

AWSCredentials credentials = new BasicAWSCredentials(accessKeyId,secretAccessKey);
        AmazonS3 s3Client = new AmazonS3Client(credentials);

ObjectListing objects = s3Client.listObjects(listobjectrequest);