【发布时间】:2019-12-07 01:54:14
【问题描述】:
最近我想到了一件我还没有完全想到的事情。基本上,问题总结在问题中。在更广泛的意义上,我的问题如下:
(假设这些事情是由不同机器上的脚本或同一机器内的不同任务(并发)完成的)
假设我们有一个名为“bucket-one”的存储桶和一个对象,其中的键是“foo/bar.ext” 一个任务尝试将“foo/bar.ext”移动到“foo2/bar.ext”,另一个尝试将对象移动到“foo3/bar.txt”,例如,我们使用 boto3 s3 客户端/资源(但可能不会影响输出)。
当您尝试将对象同时从一个文件夹同时移动到同一存储桶中的另一个文件夹时会发生什么?
我想到的输出是:
- 两个请求都会成功地将同一个文件移动到不同的文件夹中,因此我们现在同时拥有“foo2/bar.ext”和“foo3/bar.ext”。
- 其中只有一个被移动到“foo2/bar.ext”或“foo3/bar.ext”
- 两个请求均失败,对象未移动并保留为“foo/bar.ext”。
- 上述所有情况都可能在事先不准确知道输出的情况下发生。
第二个问题只是时间上的变化“不是在确切的时间,而是非常接近(几乎相同的时间)”。
我知道可能性不大,但我很好奇它会产生什么结果。
谢谢
【问题讨论】:
标签: amazon-web-services amazon-s3 boto3 move