【问题标题】:How to find out S3 Bucket last accessed time?如何找出 S3 Bucket 上次访问时间?
【发布时间】:2017-10-20 13:44:48
【问题描述】:

我有一个用例,我需要找出 S3 存储桶的上次访问时间,但我找不到这样做的方法。虽然,我们可以获得存储桶的 LastModifiedTimeLastUpdatedTime,但我找不到任何 AWS API,它可以为我提供 AWS S3 存储桶的最后访问时间。一种方法是解析桶内的所有对象,但这是一项非常昂贵的操作,我负担不起。 有人可以帮我获取 AWS S3 存储桶的 LastAccessedTime 吗?我正在使用带有 boto3 的 Python。

【问题讨论】:

标签: python-3.x amazon-web-services amazon-s3 boto boto3


【解决方案1】:

即使我也面临同样的问题。我需要访问我的 S3 存储桶中存在的对象的最后处理时间,以获取适合移动到 S3 存储类的对象。不幸的是,我找不到直接获取那个时间的方法。

作为一种解决方法,您可以设置AWS Cloudtrail at Object Level

现在您可以浏览这些日志并在“eventName”键下查找“GetObject”事件以及“eventTime”键下的事件时间。

我知道这不是一个优化的解决方案。但我找不到任何其他方法来实现它。如果有人有更好的解决方案,请分享。

【讨论】:

    【解决方案2】:

    您可以使用AWS Cloud Trail 根据资源类型查找对资源的最后访问。

    请参阅 AWS 的以下文档,该文档启用了基于资源类型的查询,在您的情况下是 S3 存储桶。

    Resource Types Supported by CloudTrail API Activity History

    【讨论】:

    • 是的,但是我想我需要解析云跟踪日志并需要从中找到存储桶。是否有任何来自 AWS 的直接 API 与此相关?
    • 没有。没有找到上次访问的 api。你现在必须通过云路径。
    【解决方案3】:

    我知道为时已晚,但它可以帮助其他人我们可以使用 Bucket Metrics 查看 S3 存储桶利用率的详细信息。

    https://docs.aws.amazon.com/AmazonS3/latest/user-guide/configure-metrics.html

    【讨论】:

    • 鼓励链接到外部资源,但请在链接周围添加上下文,以便您的其他用户了解它是什么以及为什么存在。始终引用重要链接中最相关的部分,以防外部资源无法访问或永久离线。
    【解决方案4】:

    我没有准备好作为答案发布的代码,但我有一种方法可以使用它来实现它。

    您可以利用 Amazon S3 服务器访问日志记录

    1. S3 服务器访问日志记录提供对 Amazon S3 存储桶中的对象发出的请求的详细记录。
    2. Amazon S3 会定期收集访问日志记录,将记录合并到日志文件中,然后将日志文件作为日志对象上传到您的目标存储桶。
    3. 每条日志记录都包含存储桶名称、请求中的操作以及收到请求的时间等信息。
    4. S3 服务器访问日志格式提供了有关日志文件格式的更多详细信息。

    您需要使用目标存储桶来获得所需的答案。

    【讨论】:

      猜你喜欢
      • 2016-04-29
      • 1970-01-01
      • 1970-01-01
      • 2018-04-04
      • 2014-06-14
      • 2022-12-30
      • 2023-03-17
      • 2012-05-02
      • 2023-01-09
      相关资源
      最近更新 更多