Вы можете попробовать этот код, который мне подходит для загрузки на S3.
from libcloud.storage.types import Provider
from libcloud.storage.providers import get_driver
FILE_PATH = 'test.txt'
cls = get_driver(Provider.S3)
driver = cls('api key', 'api secret key')
container = driver.get_container(container_name='testing-bucket')
extra = {'meta_data': {'owner': 'shakeel', 'created': '2014-02-2'}}
with open(FILE_PATH, 'rb') as iterator:
obj = driver.upload_object_via_stream(iterator=iterator,
container=container,
object_name='test.txt',
extra=extra)
источник: https://libcloud.readthedocs.io/en/latest/storage/examples.html