Amazon S3:将文件移出存储桶并移入 Glacier

Amazon S3: move files out of a bucket and into Glacier

我有一个 S3 存储桶(称之为 main_bucket),其中上传了各种 TIFF 文件。上传到 main_bucket 时,会触发 Lambda 函数,将 TIFF 转换为 JPEG 并将 JPEG 存储在存储桶中。然后我想将 TIFF 存储在 Glacier 中并将其从 main_bucket 中删除,但我不确定该怎么做。

当然,我可以创建第二个存储桶(称之为 archive),将生命周期设置为 archive,以便它将所有内容存储在 Glacier 存储 class 中,并在 main_bucket 上设置生命周期规则,以便将 main_bucket 中的所有 TIFF 文件复制到 archive。这将确保上传的 TIFF 的副本最终在 archive 中,并且由于 archive 中的所有内容都在 Glacier 存储 class 中,这意味着所有 TIFF 最终都在 Glacier 中,这就是我想要的。 但是:这种方法还在 main_bucket 中保留了每个 TIFF 的副本,我 不需要。我可以从 main_bucket 中删除 TIFF,但我不知道何时该做;我不相信有一个事件对应于 archive 的副本正在完成。有什么方法可以满足我的需求吗?

将对象移动到 GlacierGlacier Deep Archive 存储 class 是归档很少(可能 从不 )的对象的极好方法已访问。

看来您的情况是:

  • TIFF 上传至Bucket-A
  • 这会触发一个 AWS Lambda 函数,该函数将 TIFF 转换为 JPG 并将其存储在相同的存储桶
  • 然后您希望将 TIFF 移动到 Bucket-B 并移动到 Glacier 存储 class

选项 1:交换桶顺序

  • 将 TIFF 上传到 Bucket-B
  • 这会触发将 JPG 存储在 Bucket-A(不同的存储桶!)
  • 中的 Lambda 函数
  • 生命周期规则 添加到 Bucket-B 以在一段时间后存档 TIFF

此选项的优点在于不需要移动任何对象。对象总是在需要它们的存储桶中创建。

选项 2:将对象作为 Lambda 函数的一部分移动

  • Lambda 函数在 Bucket-A 中创建 JPG 后,它还应该:
  • 将 TIFF 复制到 Bucket-B
  • Bucket-A
  • 中删除 TIFF
  • 生命周期规则 添加到 Bucket-B 以在一段时间后存档 TIFF