【问题标题】:Is "aws S3 cp" command Atomic?“aws S3 cp”命令是原子的吗?
【发布时间】:2021-12-23 18:31:14
【问题描述】:

鉴于,s3://my/key/ 是源文件夹,/home/folder/ 是目标文件夹。我们有几个要复制的对象,对象大小从 5 KB 到 300 MB 不等。

我需要在来自多个线程的命令下运行。例如:

aws s3 cp s3://my/key/ /home/folder/

我们有以下查询:

  1. aws s3 cp 操作是原子的还是线程安全的?
  2. 对于 --recursivemulti-part 上传选项,这仍然是原子操作吗?

提前致谢,期待您的想法和帮助

【问题讨论】:

  • @Marcin,是的,如果某些东西是原子的,那么它是线程安全的,但是,从问题上下文来看:例如:我们有许多对象要复制,如果节点会发生什么在复制过程中失败了,?
  • 当您在此处使用“原子”一词时,您希望这在 S3 操作的上下文中究竟意味着什么?

标签: amazon-web-services amazon-s3 boto3 aws-cli


【解决方案1】:

根据documentation,只有单个键上的动作是原子的。

因此将单个密钥复制到不同文件夹是原子的。

所以:

  1. 仅当它用于单键时才是原子的
  2. --recursive 不是原子的,因为它不适用于单键。它将针对几个键执行。 multi-part 对于单个部分也应该是原子的。

【讨论】:

  • 谢谢@Justinas,我明白了,但是考虑到所有部分,multi-part 选项也是“原子的”吗?任何文件参考或相同的想法,?
  • 如果在aws s3 cp 操作和multi-part 选项仍在进行中时节点出现故障会怎样?请建议
  • 正如atomic的定义所暗示的——多部分上传的整个过程不可能是原子的。如果失败,您应该重新开始上传
  • 上传完成后,多部分对象才会出现在桶中。需要注意的是:如果上传失败,分段部分会保留在存储中,虽然在存储桶中不可见,但一般建议添加生命周期规则,在一定天数后删除旧的分段上传。
猜你喜欢
  • 1970-01-01
  • 2018-09-16
  • 1970-01-01
  • 2023-02-09
  • 1970-01-01
  • 1970-01-01
  • 2017-07-21
  • 1970-01-01
  • 2020-07-23
相关资源
最近更新 更多