gpt4 book ai didi

python - 将 Boto3 与 freezegun 一起使用会导致 403

转载 作者:行者123 更新时间:2023-12-04 17:37:49 28 4
gpt4 key购买 nike

我正在使用 boto3 从 AWS S3 存储桶加载一些文件。哪个工作正常。但是,对于我的单元测试,我正在调用 freeze_time,然后该函数返回错误:botocore.exceptions.ClientError: An error occurred (403) when calling the HeadObject operation: Forbidden .

是否有解决方案,使我能够继续使用 freeze_time 并且可以从 S3 检索文件?

该代码无需 @freeze_time("2019-01-30") 即可工作添加时不会。

import boto3
from freezegun import freeze_time
import io

bucket = 'bucket'
key = 'key'

@freeze_time("2019-01-30")
def test_x():
s3 = boto3.client('s3')
f = io.BytesIO()
s3.download_fileobj(bucket, key, f)

test_x()

最佳答案

不——你不能使用 freeze_time。你需要找到另一种方法。

AWS api 调用需要时间在客户端和服务器之间“在合理范围内”达成一致。一位客户说一月,而实际上是五月,被认为是“不合理的”。根据 aws.amazon.com 上的信息,允许的最大时钟偏差为 15 分钟。

对于某些 SDK,亚马逊嵌入了自动时钟偏差校正。这可以让调用完成,但可能不会为您提供预期的时间。

关于python - 将 Boto3 与 freezegun 一起使用会导致 403,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55933652/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com