1

我正在尝试使用 boto2 模拟 AWS s3 api 调用。我使用localstack创建本地 s3 端点,并且可以使用 boto3 轻松使用它,如下所示,

import boto3
s3_client = boto3.client('s3', endpoint_url='http://localhost:4572')
bucket_name = 'my-bucket'
s3_client.create_bucket(Bucket=bucket_name)

但是我没有找到使用boto2的方法。有什么方法最好使用 ~/.boto 或 ~/.aws/config?

尝试为端点提供 boto2 但失败了。

import boto
boto.s3.S3RegionInfo(name='test-s3-region', endpoint='http://127.0.0.1:4572/')
s3 = boto.s3.connect_to_region('test-s3-region')
print s3.get_bucket('test-poc')

错误:

AttributeError: 'NoneType' object has no attribute 'get_bucket'

我希望将本地端点用于所有 AWS 服务以进行测试。

4

1 回答 1

1

这对我有用:

import boto
from boto.s3.connection import S3Connection
region = boto.s3.S3RegionInfo(name='test-s3-region', endpoint='http://127.0.0.1:4572/', connection_cls=S3Connection)
conn = region.connect()
print conn.get_bucket('test-poc')

您需要将connection_cls属性设置为默认为 NoneType

于 2018-09-04T22:36:40.980 回答