【问题标题】:Sync AWS glacier storage changes with RDS将 AWS Glacier 存储更改与 RDS 同步
【发布时间】:2017-11-29 18:36:56
【问题描述】:

我正在使用 S3 生命周期规则将对象移动到 Glacier。由于对象将被移动到冰川存储,我需要确保我的应用程序 RDS 也是 更新了类似的细节。

根据我在此线程 AWS Lambda for objects moved to glacier 上的讨论,目前无法生成 SQS 通知以获取有关对象被移动到冰川的通知。

另外,根据我的理解,目前生命周期规则将在一天内评估一次,但没有具体的时间会在一天内发生。如果有我计划有一个调度程序,它将在此之后运行并更新 RDS 中存档对象的状态。

有没有一种方法可以建议您在 AWS 和 RDS 之间同步这种状态变化?

如果您需要更多信息以了解用例,请告诉我您的反馈。

=== 我目前的方法如下。

以下是我实施的确切流程,请查看并告诉我是否有任何可以以更好的方式完成的事情。

当对象上传到系统时,我将其标记为已标记状态并捕获创建日期。我的生命周期规则配置为自创建后 30 天。所以,我有一个调度程序,它计算所有状态为 Tagged 的​​对象的今天日期和对象创建日期之间的差异,并检查 diff 是否大于等于 30。如果是,它将状态更新为 Archived。

如果用户对状态为存档的对象执行任何操作,我们会在 s3 中明确检查对象是否实际移动到冰川。如果不是,我们执行请求的操作。如果移动到冰川,我们将启动恢复过程并等待恢复完成以启动所需的操作。

感谢您的想法,并希望听到您对我所采取的上述方法的意见。

问候。

【问题讨论】:

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


    【解决方案1】:

    如果我想实现这一点,我会在它应该转换的那一天开始时将我的数据库中对象的存储类设置为“Glacier/Archived”。

    您已经知道自己的生命周期策略,并且作为对象元数据的一部分,您还知道每个对象的创建时间。然后它变成了一个简单的查询,可以安排在每晚 12:00 AM 运行。

    您可以通过定义一个算法来进一步增强您的应用程序,该算法检查一个对象今天是否已转换到 Glacier,当请求对象访问时,它会明确检查它是否实际转换。如果标记为 Glacier/Archive 超过一天,则不再需要检查。

    当然,如果由于任何原因,上述解决方案对您不起作用,则可以编写一个扫描仪应用程序来不断检查那些应该在“DateTime.Today”转换的对象的状态并且是尚未标记为 Glacier/Archive。

    【讨论】:

    • 嗨 Sepehr Samiei,感谢您的回复。我已经按照您的建议实施了类似的行为。我想检查是否有其他更好的方法来实现相同的目标。我刚刚用我采取的方法更新了我原来的问题。请您分享您的想法,并让我知道任何可以做得比我提到的更好的领域。
    • 您的方法是实现此功能的常用方法。我看到的唯一可能的小改进是检查对象是否已被标记为存档超过一天。如果是这样,您可以保存验证它是否确实存档所需的 api 调用,因为您确定超过 30 天的对象总是被存档。
    猜你喜欢
    • 2021-05-01
    • 1970-01-01
    • 2022-12-18
    • 2023-03-14
    • 2017-10-26
    • 1970-01-01
    • 1970-01-01
    • 2021-01-16
    • 1970-01-01
    相关资源
    最近更新 更多