Comment 1 for bug 1696236

Revision history for this message
Timur Alperovich (timur-alperovich) wrote :

Agreed on the lack of documentation around this. I looked into the client functions a little bit tonight and came up with the following:

>>> import swiftclient
>>> storage_url, auth_token = swiftclient.client.get_auth('http://localhost:32780/auth/v1.0', 'test:tester', 'testing')
>>> conn = swiftclient.client.Connection(preauthurl=storage_url, preauthtoken=auth_token)
>>> conn.head_container('test')
{[...] u'x-timestamp': u'1496991830.55304', u'x-openstack-request-id': u'tx1895dbebda3e452dab2b8-00593a485e'}

I think the same approach works with the v2 authentication, but I haven't tested that. I've only tried with v1 auth in the docker-swift container, but the code for swiftclient.client.get_auth seems like it supports v2 Keystone auth as well. Would this work for you to store the storage URL and auth token in Redis or some other caching layer?