从S3存储桶以原子方式获取和删除对象

淡淡的安慰

我正在编写一些端到端测试,这些测试可以重用和变异测试数据,因此需要在外部中央位置存储和修改文件。由于用例的原因,并发访问将受到限制,因此我决定在s3上采用乐观的并发解决方案,而不是创建数据库,这对于少量的测试数据来说似乎已经过时了。

我的计划是在s3上创建一个小文件列表,每次测试需要数据时,获取一个文件,将其从服务器中删除,然后在数据突变后写回新文件。

为了最大程度地减少两个用户访问同一文件的机会,我想自动获取和删除该文件。这可能吗?还是s3对象删除的延迟时间足够长,以至于它仍然没有意义?

迈克尔-SQLbot

删除操作并不是您真正需要的原子操作。

Amazon S3最终一致性可以覆盖所有区域中的PUTS和DELETES。

http://docs.aws.amazon.com/AmazonS3/latest/dev/Introduction.html#ConsistencyModel

删除对象时,无法保证对对象的后续请求不会成功,尤其是在接下来的几秒钟内。通常这是非常快的,但是仍然有可能实现。S3的设计优先考虑立即创建的新创建对象,而代表删除和覆盖的存储区索引更改可能最好以较低的优先级来描述(尽管我认为有些天真)。

此外,您删除一个对象,该对象在下载过程中正在进行其他操作,删除操作成功,但是正在进行的下载将永远不会中断,而不管文件的大小或下载需要多长时间。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用 s3 api 删除 gcp 存储桶对象

获取s3存储桶中对象的标签列表

删除 AWS S3 存储桶时权限不足,无法列出存储桶“XXXX”的对象

AWS S3存储桶删除

无法删除S3存储桶

无法删除 S3 存储桶

s3.deleteObject() 方法没有删除 S3 存储桶对象

getObjectSummaries是否将获取存储在S3存储桶中的对象计数?

删除CFN堆栈时无法删除非空S3存储桶和日志组

在清空或删除S3存储桶之前复制所有对象

从S3中的特定存储桶删除对象需要什么权限

如何删除aws s3存储桶中具有相同键的多个对象

AWS S3无法通过PHP SDK删除存储桶中的对象

从 AWS S3 存储桶中删除对象(不在代码中)

每天更新 S3 存储桶的最佳 AWS 方式?

AWS S3:无法从具有公共访问权限的存储桶中获取非拥有对象(通过非身份验证方式)

获取存储桶中每个S3对象的绝对路径

用于PHP的Amazon S3 SDK无法获取存储桶对象列表

删除Amazon S3 Java中的文件,目录和存储桶

如何使用NNP Papercut从S3存储桶中取消链接/删除文件和图像?

可以在存储桶和对象级别控制用户对 S3 的访问吗?

如何使用AWS C ++ SDK解析区域,存储桶和对象键的S3 URI?

给定一个 aws s3 存储桶名称和对象的键,如何获取该对象最后修改的属性值?

使用Serverless和Node js从S3存储桶获取文件

Terraform销毁错误“无法销毁实例”和“无法获取S3存储桶”

s3网址-获取存储桶名称和路径

如何以角度7从AWS S3存储桶中获取和显示图像

获取AWS S3中所有存储桶的名称和计数

更新S3存储桶而不删除它