我正在编写一些端到端测试,这些测试可以重用和变异测试数据,因此需要在外部中央位置存储和修改文件。由于用例的原因,并发访问将受到限制,因此我决定在s3上采用乐观的并发解决方案,而不是创建数据库,这对于少量的测试数据来说似乎已经过时了。
我的计划是在s3上创建一个小文件列表,每次测试需要数据时,获取一个文件,将其从服务器中删除,然后在数据突变后写回新文件。
为了最大程度地减少两个用户访问同一文件的机会,我想自动获取和删除该文件。这可能吗?还是s3对象删除的延迟时间足够长,以至于它仍然没有意义?
删除操作并不是您真正需要的原子操作。
Amazon S3最终一致性可以覆盖所有区域中的PUTS和DELETES。
http://docs.aws.amazon.com/AmazonS3/latest/dev/Introduction.html#ConsistencyModel
删除对象时,无法保证对对象的后续请求不会成功,尤其是在接下来的几秒钟内。通常这是非常快的,但是仍然有可能实现。S3的设计优先考虑立即创建的新创建对象,而代表删除和覆盖的存储区索引更改可能最好以较低的优先级来描述(尽管我认为有些天真)。
此外,您删除一个对象,该对象在下载过程中正在进行其他操作,删除操作成功,但是正在进行的下载将永远不会中断,而不管文件的大小或下载需要多长时间。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句