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 对AmazonS3的写入是原子的(全部还是全部)?_Amazon Web Services_Amazon S3 - Fatal编程技术网

Amazon web services 对AmazonS3的写入是原子的(全部还是全部)?

Amazon web services 对AmazonS3的写入是原子的(全部还是全部)?,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,我有大量的文件正在读写S3。 我只是想知道是否需要为文件“半写”的情况编写代码,例如S3只写/写“半写”工作 或者对S3的写入是全部还是全部 我知道存在读写最终一致性问题,这(我认为)在很大程度上是一个单独的问题。对于除美国标准(US-east-1)之外的所有地区,您都会得到一次又一次的读写一致性。这意味着,如果您的PUT得到HTTP200OK,您可以立即读取该对象 如果你的请求在中间被删除,你将无法得到,HTTP 200和你的对象根本不会被写入。 更新:所有地区现在都支持写后读一致性(感谢@j

我有大量的文件正在读写S3。 我只是想知道是否需要为文件“半写”的情况编写代码,例如S3只写/写“半写”工作

或者对S3的写入是全部还是全部

我知道存在读写最终一致性问题,这(我认为)在很大程度上是一个单独的问题。

对于除美国标准(US-east-1)之外的所有地区,您都会得到一次又一次的读写一致性。这意味着,如果您的PUT得到HTTP200OK,您可以立即读取该对象

如果你的请求在中间被删除,你将无法得到,HTTP 200和你的对象根本不会被写入。


更新:所有地区现在都支持写后读一致性(感谢@jeff loughridge): 参见:

AmazonS3从不添加部分对象;如果收到成功响应,AmazonS3会将整个对象添加到bucket中


“亚马逊S3在美国西部(俄勒冈州)、美国西部(北加利福尼亚州)、欧盟(爱尔兰)、亚太地区(新加坡)、亚太地区(东京)、亚太地区(悉尼)、南美洲(圣保罗)和GovCloud(美国)都有销售区域为新对象的PUT提供读写一致性,并为覆盖PUT和删除提供最终一致性。美国标准区域中的Amazon S3存储桶提供最终一致性。”“所有区域现在都支持先读后写一致性。请参阅S3常见问题解答。感谢上面的链接。我在使用“如果(不是头部)然后放置;获取”工作流获得0.25%的失败率后发现了此票据。您上面的链接列出了以下限制:“警告是,如果您在创建对象之前对密钥名发出HEAD或GET请求(以查找对象是否存在),Amazon S3将为写后读提供最终的一致性。”因此,现在我知道我的设计行不通,但至少我没有发疯。@RobertCalhoun您可能想查看Netflix s3mper项目和EMRFS一致性视图只要知道异常,在S3中编写能够正常工作的代码是很容易的!对我来说,这就是问题的答案。