【问题标题】:How do I get the last modified date of a directory in Amazon S3?如何获取 Amazon S3 中目录的最后修改日期?
【发布时间】:2018-12-09 09:44:01
【问题描述】:

所以我知道 Amazon S3 并没有真正的目录。我的问题是:这是否会导致无法可靠地获取 S3 中“目录”的最后修改时间戳?

我知道您可以获得文件的最后修改日期,如this 问题。

我说“可靠”是因为可以将目录中文件的最新最后修改时间戳定义为目录的最后修改时间戳。但这并不准确,因为如果目录中的文件被删除,它不会注册为对该目录的更改(实际上,删除可能会导致最后修改日期的时间倒退)。

我们正在使用boto 来抓取 S3。

【问题讨论】:

  • 最好是目录中最旧文件的创建日期。向前推进的一种选择是在创建您永远不会删除的目录时添加某种锚文件。您可以根据当前最旧的文件在目录中追溯创建锚文件,并且您的数据可以改善超时。

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


【解决方案1】:

如果您知道这一点真的很重要,您可以使用 S3 事件通知开发解决方案。每次从文件夹中放置或删除文件时,您都可以触发 SNS 或 Lamba 事件,并且您可以使用该信息来更新表/日志,以便在需要时保存该信息以供使用。

可能不需要大量工作,但如果知道它至关重要,那么它是值得探索的途径。

http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html

【讨论】:

  • 谢谢!我们可能会认为这对我们来说并不重要,但有这个选项很好。
  • 还有一个选项可以将元数据添加到 S3 对象(您可以在其中存储“last_modified”字段)
【解决方案2】:

由于我们标记为目录的只是对象名称的一部分,因此没有创建时间、修改时间等,因为它本身并不真正作为实体存在。该对象有一个路径,当您在名称中添加“/”时,客户端演示应用程序会将其视为分隔符,拆分名称并使其看起来像路径。就像您建议的那样,没有目录,这就是该概念与传统文件系统以及最终用户与之交互的方式真正不同的地方。

我建议询问您要做什么以及为什么目录的时间戳很重要。 E.J. Brennan 建议您可能正在尝试做的事情,对于他提到的案例来说这不是一个坏主意。可能有不同的方法可以给你的猫剥皮。

【讨论】:

  • 您是否有指向您阅读本文的文档的链接?我找不到它。
  • 当它被创建时,你可以创建一个小文本文件来作为正确的修改日期吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多