- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个项目使用 aiohttp 和 aiobotocore 来处理 AWS 中的资源。我正在尝试测试适用于 AWS S3 的类,并且我正在使用 moto 来模拟 AWS。模拟适用于使用同步代码的示例(来自 moto 文档的示例)
import boto3
from moto import mock_s3
class MyModel(object):
def __init__(self, name, value):
self.name = name
self.value = value
def save(self):
s3 = boto3.client('s3', region_name='us-east-1')
s3.put_object(Bucket='mybucket', Key=self.name, Body=self.value)
def test_my_model_save():
with mock_s3():
conn = boto3.resource('s3', region_name='us-east-1')
conn.create_bucket(Bucket='mybucket')
model_instance = MyModel('steve', 'is awesome')
model_instance.save()
body = conn.Object('mybucket', 'steve').get()['Body'].read().decode("utf-8")
assert body == 'is awesome'
但是,在重写它以使用 aiobotocore 模拟之后不起作用 - 在我的示例中它连接到真实的 AWS S3。
import aiobotocore
import asyncio
import boto3
from moto import mock_s3
class MyModel(object):
def __init__(self, name, value):
self.name = name
self.value = value
async def save(self, loop):
session = aiobotocore.get_session(loop=loop)
s3 = session.create_client('s3', region_name='us-east-1')
await s3.put_object(Bucket='mybucket', Key=self.name, Body=self.value)
def test_my_model_save():
with mock_s3():
conn = boto3.resource('s3', region_name='us-east-1')
conn.create_bucket(Bucket='mybucket')
loop = asyncio.get_event_loop()
model_instance = MyModel('steve', 'is awesome')
loop.run_until_complete(model_instance.save(loop=loop))
body = conn.Object('mybucket', 'steve').get()['Body'].read().decode("utf-8")
assert body == 'is awesome'
所以我在这里的假设是 moto 不能与 aiobotocore 一起正常工作。如果我的源代码类似于第二个示例,我该如何有效地模拟 AWS 资源?
最佳答案
来自 moto
的模拟不起作用,因为它们使用同步 API。但是,您可以启动 moto
服务器并配置 aiobotocore
以连接到此测试服务器。 Take a look on aiobotocore tests寻找灵感。
关于python - 如何使用 aiobotocore 模拟 AWS S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46420709/
我有一个项目使用 aiohttp 和 aiobotocore 来处理 AWS 中的资源。我正在尝试测试适用于 AWS S3 的类,并且我正在使用 moto 来模拟 AWS。模拟适用于使用同步代码的示例
我想使用 botocore 和 aiohttp 服务获取 S3 上上传文件的内容。由于文件可能很大: 我不想将整个文件内容存储在内存中, 我希望能够在从 S3(aiobotocore、aiohttp)
如果我尝试安装最新版本的 aiobotocore pip3 install aiobotocore==0.10.3它说我的 botocore 版本不兼容,我需要它的旧版本。 ERROR: aiobot
下面的代码引发导入异常 import s3fs fs = s3fs.S3FileSystem(anon=False) 异常(exception) Traceback (most recent call
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 上个月关闭。 Improve thi
我是一名优秀的程序员,十分优秀!