Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如果文件不存在,AWS CLI S3 rm命令不会产生错误_Amazon Web Services_Amazon S3 - Fatal编程技术网

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

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命令使

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

以下命令:

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为所有区域的覆盖放置和删除提供了最终的一致性

“最终一致性”意味着在将来的某个未定义的点上,所有分布式节点都将跟上更改,并且根据您所做的更改,从查询返回的结果将与预期一致


所以基本上,这是一个冗长的说法:不,你不能得到文件被删除的确认。事后检查它是否存在将无法可靠地工作

感谢您的详细解释!