After the token used by jclouds expires, subsequent `putBlob` requests to swift fail with 401.
Unlike other operations, the `putBlob` command does not resolve this by `POST`ing to keystone, but instead tries a few times to `PUT` the blob to swift. Each request fails with a 401 and then it gives up.
Other operations such as a get will handle a retry by refreshing the auth token, after which subsequent puts work (until the next expiry)
Project to reproduce can be found here https://github.com/UniversityofWarwick/jclouds-bug
It should be noted that when running this script I have altered [token] expiration in /etc/keystone/keystone.conf to be 2 seconds.