无法从Amazon S3删除目录

时间:2014-03-26 16:58:05

标签: amazon-web-services amazon-s3

我正在使用亚马逊S3的网络界面,当我右键单击文件夹X并选择删除时,X似乎被删除了。然后,当我刷新界面时,X可能会消失或保留;如果我一直点击刷新,则该文件夹丢失或存在。这是一个错误,还是我做错了什么?据我所知,文件夹 仍然存在;我的一个EMR作业抱怨输出文件夹X仍然存在。

12 个答案:

答案 0 :(得分:38)

在AWS命令行(CLI)之后,我在AWS Web界面中遇到了同样的问题 - 在存储桶中删除了“递归”文件夹。一些对象在Web界面中随机重新出现(不是文件,实际上是“文件夹”)。即使我试图在Web界面中删除这些文件夹,它们仍然存在(界面说操作成功了......)

在AWS网络界面中为我工作的解决方案:右键单击文件夹 - > CUT和PASTE进入另一个文件夹。工作得很好,然后删除了新文件夹。不见了!

答案 1 :(得分:10)

尝试与Kristoffer的answer相同,但CUT / PASTE到另一个文件夹使新文件夹无法删除。

进一步黑客攻击:创建一个新的临时存储桶。将文件夹剪切/粘贴到此存储桶并删除存储桶

答案 2 :(得分:8)

S3实际上并不使用文件夹。而是将对象路径中的路径分隔符视为文件夹。如果要删除文件夹,则必须删除该文件夹的所有内容。

如果删除所有内容有任何延迟,该文件夹可能会继续存在。

答案 3 :(得分:6)

截至2017年3月,AWS控制台用户界面已更改,您无法再进入版本控制模式'在我的旧帖中描述。

现在看来,版本化文件的文件夹可以不受限制地自由删除。

如果不是这种情况,请发表评论,以便我更正此帖。

以前版本的AWS控制台

如果您使用的是AWS管理控制台并且版本控制已启用开启,则您必须处于版本控制模式'删除文件夹。 您进入版本控制模式'通过转到页面顶部并在其旁边显示的位置'版本:'选择显示按钮。然后,您可以继续右键单击并删除您的文件夹。 希望这有助于某人。

答案 4 :(得分:3)

尝试了从Web界面删除的各种替代方法,以删除包含子文件夹的文件夹,但没有运气。 我安装了S3浏览器,然后尝试从S3 Browser界面工作。

答案 5 :(得分:2)

我想我看到了类似的行为。我的水桶已打开版本;即使存储桶中有空文件夹/目录,尝试通过AWS Web UI控制台“删除”存储桶中的文件夹/目录也不会导致实际删除它。我认为该路径中文件的“已删除”版本仍然存在(但在Web控制台中不可见),因此存储桶不是真正的空,并没有真正被删除。您可能需要通过CLI工具检查该文件夹/目录中是否存在已删除的文件版本(但在Web控制台中不可见)并永久删除文件,然后尝试删除存储桶中的文件夹/目录。 / p>

答案 6 :(得分:0)

我遇到了同样的问题并且无法访问亚马逊控制台,但我可以使用此Java代码删除它

    AmazonS3Client amazonS3Client = new AmazonS3Client(basicAWSCredentials);
    ObjectListing objectListing = amazonS3Client.listObjects("bucketName", "prefix");
    DeleteObjectsRequest deleteObjectsRequest = new DeleteObjectsRequest("bucketName");
    List<DeleteObjectsRequest.KeyVersion> keysToDelete = new ArrayList<>();
    objectListing.getObjectSummaries().forEach(s3ObjectSummary -> {
        keysToDelete.add(new DeleteObjectsRequest.KeyVersion(s3ObjectSummary.getKey()));
    });
    deleteObjectsRequest.setKeys(keysToDelete);
    amazonS3Client.deleteObjects(deleteObjectsRequest);
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk</artifactId>
        <version>1.7.4</version>
    </dependency>

答案 7 :(得分:0)

我有一个无法删除s3存储桶的问题,消息为“调用DeleteBucket操作时发生错误(AccessDenied):访问被拒绝”

过一会儿,我在选项卡“ permission”按钮中的“ bucket policy”标签中删除了存储桶策略,它的工作原理很吸引人:

aws s3 rb s3://elasticbeanstalk-us-west-..../ --force

希望有帮助!是另一种选择 巴勃罗

答案 8 :(得分:0)

尝试使用另一个帐户(例如管理员帐户)删除。对我来说,它仅适用于这种方法。

答案 9 :(得分:0)

当我无法从启用了版本控制的 S3 存储桶中删除空文件夹时,我遇到了这个问题。

我能够使用 S3 存储桶列表中的“空存储桶配置”删除空文件夹:

  1. 选择您要清空的存储桶,然后点击 Delete 按钮: S3 buckets listing

  2. AWS 警告您存储桶不为空,并提供使用 empty bucket configuration 的链接。点击链接: AWS Delete Bucket dialog

  3. 输入 permanently delete 以删除此存储桶中的所有对象,以继续执行此屏幕: enter image description here

然后您应该能够验证您的 S3 存储桶是否真的为空。

答案 10 :(得分:-1)

尝试使用新的S3控制台。删除功能适用于文件夹。

答案 11 :(得分:-1)

有一个“弹性bean-stalk”存储桶,在删除之前必须删除“存储桶策略”。

必能