amazon-s3 - 当 Amazon S3 删除正在进行并且上传尝试覆盖同一存储桶中的同一对象时会发生什么
问题描述
我们有一个 CICD 管道,它可以删除同一个文件,然后上传到 S3。我们首先删除目录中的所有文件,然后上传文件,因为如果我们只执行会进行覆盖的上传文件,则目录中可能会留下不需要的文件,需要将其删除。如果正在进行 S3 删除,同时请求上传以覆盖它,会发生什么情况?这个文件最终会被删除还是被覆盖的文件留下?
解决方案
请检查Amazon S3 数据一致性模型,它说它在 PUTS 新对象后提供写后读一致性。以及 OVERWRITE PUTS 和 DELETES 的最终一致性。
Amazon S3 当前不支持对象锁定。如果同时对同一个键发出两个 PUT 请求,则具有最新时间戳的请求获胜。如果这是一个问题,您将需要在应用程序中构建对象锁定机制。
因此,在您的情况下,您可能会遇到这种不希望的情况,您的对象最终被删除:如果新的 PUT 在 DELETE 执行之前通过,那么它将被视为 UPDATE 而不是全新的 put。在这种情况下,DELETE 可能会在第二个 PUT 之后执行,导致根本没有可用的对象。
推荐阅读
- python - 压缩整整的文本文本文件[python]
- c++ - 带有 Paradigm C++ 编译器的成员函数模板
- amazon-web-services - 从 AWS EC2 元数据链接本地地址获取多个项目
- django - 为不同的 input_type 覆盖 AdminTimeWidget
- python-3.x - 如果从运行的 python 脚本引发错误,如何使 systemd 服务失败?
- javascript - 如何在 Blazor 中设置最小日期?
- node.js - 当我在控制台中键入 $ npm build 时,bash 脚本没有运行
- python - Python从两个列表中删除公共子字符串
- postgresql - Postgres - 从嵌套的 json 将数据插入表中
- java - 如何记录客户信息