def setup_gcs(application): if application.config['EQ_STORAGE_BACKEND'] == 'gcs': gcs_session = AuthorizedSession(google.auth.default()[0]) gcs_session.mount('https://', requests.adapters.HTTPAdapter(pool_maxsize=application.config['EQ_GCS_MAX_POOL_CONNECTIONS'])) client = storage.Client(_http=gcs_session) bucket = client.get_bucket(application.config['EQ_GCS_BUCKET_ID']) application.eq['gcsbucket'] = bucket
class Firebase: """ Firebase Interface """ def __init__(self, config): self.api_key = config["apiKey"] self.auth_domain = config["authDomain"] self.database_url = config["databaseURL"] self.storage_bucket = config["storageBucket"] self.credentials = None if config.get("serviceAccount"): scopes = [ 'https://www.googleapis.com/auth/firebase.database', 'https://www.googleapis.com/auth/userinfo.email', "https://www.googleapis.com/auth/cloud-platform" ] service_account_type = type(config["serviceAccount"]) if service_account_type is str: self.credentials = service_account.Credentials.from_service_account_file( config["serviceAccount"], scopes=scopes ) if service_account_type is dict: self.credentials = service_account.Credentials.from_service_account_info( config["serviceAccount"], scopes=scopes ) self.requests = AuthorizedSession(self.credentials) else: self.requests = requests.Session() if is_appengine_sandbox(): # Fix error in standard GAE environment # is releated to https://github.com/kennethreitz/requests/issues/3187 # ProtocolError('Connection aborted.', error(13, 'Permission denied')) adapter = appengine.AppEngineAdapter(max_retries=3) else: adapter = requests.adapters.HTTPAdapter(max_retries=3) for scheme in ('http://', 'https://'): self.requests.mount(scheme, adapter) def auth(self): return Auth(self.api_key, self.requests, self.credentials) def database(self): return Database(self.credentials, self.api_key, self.database_url, self.requests) def storage(self): return Storage(self.credentials, self.storage_bucket, self.requests)