gpt4 book ai didi

amazon-web-services - 如果文件不存在,AWS CLI S3 rm 命令不会产生错误

转载 作者:行者123 更新时间:2023-12-02 20:26:00 25 4
gpt4 key购买 nike

我有一个 bash 脚本,它遍历一组文件名并将它们从 S3 中删除。

以下命令:

aws s3 rm "s3://myBucket/myFolder/myFile.txt"

将产生这个输出。

delete: s3://myBucket/myFolder/myFile.txt

通过验证它已在 AWS 控制台中删除,我可以看到删除成功。但是,如果我再次遍历同一个列表,即使文件已经消失,我也会得到相同的输出。

有什么方法——只使用 rm 命令——表明 AWS CLI 试图删除文件但找不到它?

最佳答案

s3 cli rm 命令使用 s3 API Delete Object operation

如您在文档中所见,这会向对象添加一个“删除标记”。从某种意义上说,它被“标记”为已删除。在做出这些标记之前,似乎没有任何检查表明底层对象确实存在

由于 S3 存储是分布式的,因此无法在所有情况下保证一致性。

这意味着如果你对一个文件进行一些操作然后检查它,答案是不确定的

在 S3 的情况下 AWS docs

Amazon S3 offers eventual consistency for overwrite PUTS and DELETES in all regions.

“最终一致性”是指在未来某个未定义的时间点,所有分布式节点都将 catch 更改,并且查询返回的结果将符合预期,给定您所做的更改

所以基本上,这是一种冗长的说法:不,您无法确认文件已被删除。之后检查它是否存在将无法可靠地工作

关于amazon-web-services - 如果文件不存在,AWS CLI S3 rm 命令不会产生错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49920802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com