使用Boto3和冷冻枪的结果是403

2024-03-28 09:14:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用boto3从AWS S3 bucket加载一些文件。很好用。但是对于我的单元测试,我调用了freeze\u time,然后函数返回错误:botocore.exceptions.ClientError: An error occurred (403) when calling the HeadObject operation: Forbidden。你知道吗

有没有一个解决方案,使我能够继续使用冻结时间,这将从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()

Tags: 文件key函数iotestimportawss3
1条回答
网友
1楼 · 发布于 2024-03-28 09:14:07

不,你不能用冻结时间。你需要找到另一种方法。你知道吗

awsapi调用要求客户机和服务器之间在“合理范围内”达成一致。一位客户说一月实际上是五月,这被认为是不合理的。根据上的信息亚马逊网站,允许的最大时钟偏差为15分钟。你知道吗

对于一些SDK,Amazon嵌入了一个自动时钟偏差校正。它可以让通话完成,但可能不会给你预期的时间。你知道吗

相关问题 更多 >