I’m trying to overwrite certain variables in boto3
using configuration file (~/aws/confg
).
In my usecase I want to use fakes3
service and send S3 requests to the localhost.
In boto
(not boto3
), I can create a config in ~/.boto
similar to this one:
[s3] host = localhost calling_format = boto.s3.connection.OrdinaryCallingFormat [Boto] is_secure = False
And client can successfully pick up desired changes and instead of sending traffic to real S3 service, it will send it to the localhost.
>>> import boto >>> boto.connect_s3() S3Connection:localhost >>>
Im trying to achieve similar result using boto3
library. By looking at the source code I found that I can use ~/aws/config
location. I’ve also found an example config in unittests
folder of botocore
.
I tried to modify config to achieve desired behaviour. But unfortunately it doesn’t work.
Here is the config:
[default] aws_access_key_id = XXXXXXXXX aws_secret_access_key = YYYYYYYYYYYYYY region = us-east-1 is_secure = False s3 = host = localhost
clients
variables using config file?You cannot set host in config file, however you can override it from your code with boto3.
import boto3 session = boto3.session.Session() s3_client = session.client( service_name='s3', aws_access_key_id='aaa', aws_secret_access_key='bbb', endpoint_url='http://localhost', )
Then you can interact as usual.
print(s3_client.list_buckets())
Recent Comments