Инициируйте драйвер libcloud:
def __init__(self, bucket_name, storage_type='s3'):
self.bucket_name = bucket_name
self.storage_type = storage_type
if storage_type == 's3':
provider_class = S3_REGIONS[config.region_name]
cls = get_driver(getattr(Provider, provider_class))
self.driver = cls(config.AWS_ACCESS_KEY_ID, config.AWS_SECRET_ACCESS_KEY)
elif storage_type == 'gcs':
cls = get_driver(Provider.GOOGLE_STORAGE)
self.driver = cls(config.GOOGLE_SERVICE_EMAIL, config.GOOGLE_APPLICATION_CREDENTIALS)
else:
raise ValueError('storage type {0} is not supported'.format(self.storage_type))
Затем загрузите с s3 / gcs:
def download(self, cloud_path, local_path=os.getcwd()):
os.makedirs(os.path.dirname(local_path), exist_ok=True)
obj = self.driver.get_object(container_name=self.bucket, object_name=cloud_path)
obj.download(destination_path=local_path, overwrite_existing=overwrite_existing)