AmazonWebServicesAWSSDKforJavaVersion2删除S3“文件夹”或删除多个S3对象
我正在搜索如何使用AWS SDK for Java version 2删除S3文件夹。我只找到了AWS SDK版本1的示例
我知道S3是一个对象存储,并且文件夹的概念并不存在。我的意思是:
- 列出具有给定前缀的给定bucket的S3对象
- 使用
DeleteObjectsRequest
删除返回的对象,以便能够在对AWS API的单个HTTP调用中删除多达1000个对象
当我搜索示例时,我经常返回到这个页面:https://docs.aws.amazon.com/AmazonS3/latest/dev/DeletingMultipleObjectsUsingJava.html,这里似乎是所使用的AWS Java SDK的版本1。至少,在我这方面,我导入了AWS SDK 2,无法直接实例化DeleteObjectsRequest,如本例所示。我被迫使用生成器,然后我找不到相同的方法来指定要删除的键列表
# 1 楼答案
我设法使它与下面的一段代码一起工作
但我觉得这样做相当麻烦,我仍然想与社区核实这是否是正确的做法。我特别发现,从
S3Object
集合到ObjectIdentifier
集合以及所需的构建器链的需要非常麻烦。为什么DeleteObjectsRequest
的生成器不允许简单地指定字符串集合作为要删除的对象的键# 2 楼答案
这是对@Comencau有用答案的改进,它处理未找到对象的情况:
MalformedXML: The XML you provided was not well-formed or did not validate against our published schema