【问题标题】:Delete object in a bucket AWS删除存储桶 AWS 中的对象
【发布时间】:2020-09-04 09:43:58
【问题描述】:

我来找你们,因为我想删除桶 aws 中的一个对象。我在该存储桶上激活了版本控制。

对象看起来像这样:

{
            "StorageClass": "STANDARD",
            "LastModified": "2020-06-12T00:49:29.700Z",
            "IsLatest": true,
            "Owner": {
                "DisplayName": "XXX",
                "ID": "XXXXXXXXXXXXX"
            },
            "Key": "my_file",
            "VersionId": "null",
            "Size": 165439242240,
            "ETag": "\"445fea819ed9cf0f127a39c64ec0da22-309\""
        }

我试过了:

aws s3api delete-object --bucket my_bucket --key my_file --version-id version_id

该命令创建一个 Delete Marker 对象,当我删除该 Delete Marker 时,我得到了我的起始 my_file

我要做的是明确删除该文件。

【问题讨论】:

    标签: amazon-web-services versioning bucket


    【解决方案1】:

    要永久删除版本化对象,您必须使用 DELETE Object versionId。

    aws s3api delete-object --bucket my_bucket --key my_file --version-id null
    

    AWS CLI 命令参考中有关delete object 的更多信息

    当您对现有存储桶启用版本控制时,已存储在存储桶中的对象不会改变。版本 ID(null)、内容和权限保持不变。

    要移除一个对象,试试这个:

    aws s3 rm s3://mybucket/test.txt
    

    【讨论】:

    • 这就是我实际所做的。但我无法指定 version_id,因为该值为 "null" 。
    • 好吧,那么这可能意味着文件在启用版本控制之前就已经在存储桶中了。我已经更新了我的答案。
    • 其实要删除那种带有"VersionId": "null"的文件,我需要使用aws s3api delete-object --bucket my_bucket --key my_file --version-id null
    猜你喜欢
    • 2019-08-05
    • 2017-03-06
    • 1970-01-01
    • 1970-01-01
    • 2018-12-21
    • 1970-01-01
    • 2016-05-10
    • 2021-01-03
    • 2017-03-20
    相关资源
    最近更新 更多