小编rom*_*ain的帖子

AWS S3 跨区域复制删除操作行为的状态

我很惊讶地发现在 S3 存储桶跨区域复制情况下没有复制文件删除,运行这个简单的测试:

  1. CRR 的最简单配置
  2. 上传一个新文件
  3. 检查它是否被复制
  4. 删除文件(不是文件的版本)

所以我检查了文档,我发现了这个声明:

如果您从源存储桶中删除对象,则会发生以下情况:

  • 如果您在未指定对象版本 ID 的情况下发出 DELETE 请求,Amazon S3 会添加删除标记。Amazon S3 处理删除标记如下:
    • 如果使用最新版本的复制配置,即您在复制配置规则中指定 Filter 元素,Amazon S3 不会复制删除标记。
    • 如果未指定 Filter 元素,Amazon S3 将假定复制配置是先前版本 V1。在早期版本中,Amazon S3 以不同方式处理删除标记的复制。有关更多信息,请参阅向后兼容性。

后面的向后兼容链接告诉我:

  • 当您从源存储桶中删除对象而不指定对象版本 ID 时,Amazon S3 会添加删除标记。如果您使用复制配置 XML 的 V1,Amazon S3 会复制由用户操作产生的删除标记。[...] 在 V2 中,Amazon S3 不复制删除标记,因此您必须将 DeleteMarkerReplication 元素设置为 Disabled。

所以如果我总结一下:

  • 如果没有过滤器,CRR 配置被认为是 v1
  • 使用 CRR 配置 v1,复制文件删除,而不是 v2

嗯,这是我的配置:

{
    "ReplicationConfiguration": {
        "Role": "arn:aws:iam::271226720751:role/service-role/s3crr_role_for_mybucket_to_myreplica",
        "Rules": [
            {
                "ID": "first replication rule",
                "Status": "Enabled",
                "Destination": …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 amazon-web-services

10
推荐指数
1
解决办法
5848
查看次数

标签 统计

amazon-s3 ×1

amazon-web-services ×1