gpt4 book ai didi

python-3.x - 升级boto3后Moto似乎停止 mock

转载 作者:行者123 更新时间:2023-12-03 23:06:58 35 4
gpt4 key购买 nike

我已经从 boto3==1.7.48 to 1.13.11 升级了 boto3 ,这破坏了我使用 Moto 的所有测试。看起来(令人担忧)模拟已经完全停止工作并正在尝试实际访问 s3,这是以前工作的示例测试函数:

def upload_video(self, video):
s3 = boto3.client("s3")
s3.create_bucket(Bucket=settings.AWS_STORAGE_BUCKET_NAME)
for media_key in video.upload_media_keys:
s3.upload_file(
os.path.join(
os.path.dirname(os.path.realpath(__file__)), "assets/test.mp4"
),
settings.AWS_STORAGE_BUCKET_NAME,
media_key,
)

但它现在给出了这个错误
  File "{path}", line 52, in upload_video
s3.create_bucket(Bucket=settings.AWS_STORAGE_BUCKET_NAME)
File "{path}/lib/python3.7/site-packages/botocore/client.py", line 316, in _api_call
return self._make_api_call(operation_name, kwargs)
File "{path}/lib/python3.7/site-packages/botocore/client.py", line 635, in _make_api_call
raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (IllegalLocationConstraintException) when calling the CreateBucket operation: The unspecified location constraint is incompatible for the region specific endpoint this request was sent to.

任何帮助将不胜感激。以下是升级列表:

前:
boto3 == 1.7.48
botocore == 1.10.84
moto == 1.3.6

后:
boto3==1.13.11
botocore==1.16.11
moto==1.3.14

最佳答案

我不知道发生了什么变化,但我也遇到了这个。这是我的解决方法:
以前我有:

    conn = boto3.resource("s3", region_name="ca-central-1")
conn.create_bucket(Bucket=os.environ["S3_BUCKET_NAME"]
但我将区域更改为 us-east-1一切正常
    conn = boto3.resource("s3", region_name="us-east-1")
conn.create_bucket(Bucket=os.environ["S3_BUCKET_NAME"]
由于这只是一个用于测试的假桶,我认为使用不同的区域不会有什么坏处,如果它可以使事情正常进行

关于python-3.x - 升级boto3后Moto似乎停止 mock ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61953806/

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