我已经使用名称保存了AWS S3
模仿文件夹结构的文件。
sample.jpeg
例如文件夹下的文件ABC
将被命名为ABC/sample.jpeg
我正在尝试使用 Java SDK v2 以编程方式删除这些文件夹。我正在尝试使用列出这些文件prefix
。
例如,在上面的示例中,我试图列出ABC
存储桶中所有具有前缀的文件。
ListObjectsRequest
有问题的是,如果没有这个前缀,SDK 会很好地列出文件,但是我在下面的代码中显示的前缀,它会抛出s3Exception
. 异常本身有一个awsErrorDetails
属性,它有一个sdkHttpResponse
包装statusCode
:302
和statusText
:"Moved Temporarily"
这是我正在使用的代码片段:
ListObjectsRequest listObjectsRequest = ListObjectsRequest.builder()
.bucket(this.bucketName)
.prefix(path)
.build();
List<ObjectIdentifier> objectIds = s3client.listObjects(listObjectsRequest)
.contents()
.stream()
.map(s3Object -> ObjectIdentifier.builder().key(s3Object.key()).build())
.collect(toList());
以下是我的依赖项pom.xml:
<properties>
<aws-sdk.version>2.7.22</aws-sdk.version>
</properties>
...
<!-- Amazon Web Services -->
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>s3</artifactId>
<version>${aws-sdk.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>auth</artifactId>
<version>${aws-sdk.version}</version>
</dependency>
qq_遁去的一_1
慕容3067478
明月笑刀无情
慕桂英546537
相关分类