Используя локальную конечную точку с boto2

Я пытаюсь высмеивать вызовы API AWS s3, используя boto2. Я создаю локальную конечную точку s3, используя localstack, и могу легко использовать это с помощью 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 в целях тестирования.

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.

Другие вопросы по тегам