【问题标题】:Monitor bulk transitions from Glacier to Standard storage?监控从 Glacier 到标准存储的批量转换?
【发布时间】:2019-03-25 15:34:25
【问题描述】:

我使用 AWS CLI aws s3api restore-object 命令启动了从 S3 Glacier 到标准存储的批量恢复操作,目的是稍后将文件下载并复制到其他备份位置。

我已将恢复请求天数设置为“1 天”以避免超出需要的费用(AWS 将在恢复后 1 天删除恢复的副本)。

但是,我很难理解我请求恢复的数千个文件中的哪一个 - 现在可以下载/复制了。是否有 AWS API 或界面中的区域,我可以在其中批量监控当前的 Glacier 恢复?

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-glacier


    【解决方案1】:

    aws s3api head-object 允许您轮询对象以检查其恢复状态。

    在输出中找到Restore。此值来自 x-amz-restore,如 S3 API 参考的 HEAD Object API Action 部分所述。

    对于准备下载的对象,ongoing-request(无论 Glacier 操作是否仍在等待中)设置为 false

    ongoing-request="false", expiry-date="Fri, 23 Dec 2012 00:00:00 GMT"
    

    ...否则,对于尚未准备好的对象,它被设置为true恢复正在进行中),没有提供到期日期:

    ongoing-request="true"
    

    请注意,SDK 中还提供了 head-object 的变体。在 Node.JS 中是 s3.headObject()... 在 boto3 中是 client.head_object()... 等等。


    除了轮询之外,还有一种主动的“推送”方法,使用S3 Event Notifications

    配置s3:ObjectRestore:Completed 通知将在每次恢复对象准备好时生成消息。您还可以选择使用s3:ObjectRestore:Post 来捕获还原对象的原始请求(在这种情况下,您已经发出的请求)。

    如果您启用这些s3:ObjectRestore:Completed 通知,现在您应该会收到每个对象的通知事件,因为它已准备好,只要您第一次设置通知时该对象尚未准备好。为此,您需要使用上面的轮询方法。

    S3 事件通知生成的消息可以发布到 SNS 主题、发送到 SQS 队列或用作调用 Lambda 函数的负载。如果您熟悉这些技术中的任何一种,那么其中一种技术对于为下游流程提供支持以执行必要的后续操作可能非常有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-14
      • 1970-01-01
      • 2021-05-01
      • 1970-01-01
      • 2022-12-18
      • 1970-01-01
      • 2016-11-13
      • 2010-10-07
      相关资源
      最近更新 更多