Amazon web services 如果文件不存在,AWS CLI S3 rm命令不会产生错误
我有一个bash脚本,它迭代一组文件名,并将它们从S3中删除 以下命令:Amazon web services 如果文件不存在,AWS CLI S3 rm命令不会产生错误,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,我有一个bash脚本,它迭代一组文件名,并将它们从S3中删除 以下命令: aws s3 rm "s3://myBucket/myFolder/myFile.txt" 将产生此输出 delete: s3://myBucket/myFolder/myFile.txt 通过验证是否已在AWS控制台中删除,我可以看出删除是成功的。 但是,如果我再次迭代同一个列表,即使文件不存在,我也会得到相同的输出 是否有任何方法(仅使用rm命令)指示AWS CLI尝试删除该文件但找不到它?s3 CLI rm命令使
aws s3 rm "s3://myBucket/myFolder/myFile.txt"
将产生此输出
delete: s3://myBucket/myFolder/myFile.txt
通过验证是否已在AWS控制台中删除,我可以看出删除是成功的。
但是,如果我再次迭代同一个列表,即使文件不存在,我也会得到相同的输出
是否有任何方法(仅使用rm命令)指示AWS CLI尝试删除该文件但找不到它?s3 CLI rm命令使用s3命令 正如您在文档中看到的,这会向对象添加一个“删除标记”。在某种意义上,它被“标记”为已删除。 在做这些标记之前,似乎没有任何检查来确定底层对象是否确实存在 由于S3存储是分布式的,因此并非所有情况下都能保证一致性 这意味着,如果你对一个文件执行一些操作,然后检查它,答案是不确定的 在S3的情况下,可以说 AmazonS3为所有区域的覆盖放置和删除提供了最终的一致性 “最终一致性”意味着在将来的某个未定义的点上,所有分布式节点都将跟上更改,并且根据您所做的更改,从查询返回的结果将与预期一致
所以基本上,这是一个冗长的说法:不,你不能得到文件被删除的确认。事后检查它是否存在将无法可靠地工作感谢您的详细解释!