【发布时间】:2020-06-22 17:34:17
【问题描述】:
我正在尝试列出存储桶中的对象,但当我尝试列出存储桶中的对象时却一直被阻止。
但是,所有s3.list* 命令都失败并出现以下错误。如何从存储桶中的文件夹返回文件列表?
代码
LOGGER.info("tomorrowBucket: [{}]", tomorrowBucket);
if (s3.doesBucketExistV2(tomorrowBucket)) {
LOGGER.info("made it");
LOGGER.info("probably gonna fail");
for (S3ObjectSummary summary : S3Objects.inBucket(s3, tomorrowBucket)) {
LOGGER.info(" * " + summary.getKey() + " " + "(size = " + summary.getSize() + ")");
}
LOGGER.info("made it past");
}
日志
tomorrowBucket: [20200311]
- made it
- probably gonna fail
错误
com.amazonaws.SdkClientException: Failed to parse XML document with handler class com.amazonaws.services.s3.model.transform.XmlResponsesSaxParser$ListObjectsV2Handler
...
Caused by: org.xml.sax.SAXParseException; Premature end of file.
【问题讨论】:
-
桶不包含其他桶。还是您使用“存储桶”一词来表示 S3 存储桶以外的其他东西?
-
@jarmod 我的意思是存储桶中的文件夹
-
@jarmod 我已经尝试移动到
listObjects,但我收到了Failed to parse XML Document with handler...错误 -
您是否使用最新版本的适用于 Java 的 AWS 开发工具包并调用 AmazonS3Client 的
listObjectsV2(String bucketName)方法? -
@jarmod 我正在使用 sdk 1.11.740,我已经相应地更新了上面的代码,使用(并失败)
listObjectsV2