【问题标题】:How to get age of S3 object I'm giving presigned URL for?如何获取我为其提供预签名 URL 的 S3 对象的年龄?
【发布时间】:2020-09-18 17:37:04
【问题描述】:

我们的网站使用预签名 URL 从 S3 获取对象。

    presigned_url = s3_client.generate_presigned_url(
        "get_object",
        Params={"Bucket": someBucket, "Key": somePath},
        ExpiresIn=600,
    )

这对我们来说效果很好,我们现在想要记录他们将使用此预签名 URL/上次修改日期抓取的 S3 对象的年龄指标。

我能想到的唯一一件事就是先抓取对象,然后获取年龄,但是抓取对象只是为了获取年龄似乎效率低下(特别是因为现在延迟很低,因为它只是生成预签名 URL):

    response = s3_client.head_object(
        Bucket=someBucket, Key=somePath
    )
    last_modified_time = response["LastModified"]
    recordMetric(..., last_modified_time)

    presigned_url = s3_client.generate_presigned_url(
        "get_object",
        Params={"Bucket": someBucket, "Key": somePath},
        ExpiresIn=600,
    )

有没有更好的方法来做到这一点或解决这个问题?

【问题讨论】:

    标签: amazon-web-services amazon-s3 pre-signed-url


    【解决方案1】:

    不需要获取对象,在您的代码示例中,您已经正确地做到了。示例中的 head_object() 函数从对象中检索元数据,而不检索对象本身。据我所知,这是检索对象元数据的最有效方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-22
      • 2016-06-17
      • 2019-11-04
      • 2019-03-25
      • 2022-11-26
      • 1970-01-01
      相关资源
      最近更新 更多