diff --git a/geetools/ee_initialize.py b/geetools/ee_initialize.py index a2793137..5feb398b 100644 --- a/geetools/ee_initialize.py +++ b/geetools/ee_initialize.py @@ -3,7 +3,6 @@ import json import os -import tempfile from pathlib import Path import ee @@ -93,14 +92,11 @@ def from_service_account(private_key: str): # gather global variable to be modified global _project_id - # connect to GEE using a temp file to avoid writing the key to disk - with tempfile.TemporaryDirectory() as temp_dir: - file = Path(temp_dir) / "private_key.json" - file.write_text(private_key) - ee_user = json.loads(private_key)["client_email"] - _project_id = json.loads(private_key)["project_id"] - credentials = ee.ServiceAccountCredentials(ee_user, str(file)) - ee.Initialize(credentials=credentials, http_transport=httplib2.Http()) + # connect to GEE using a ServiceAccountCredential object + ee_user = json.loads(private_key)["client_email"] + credentials = ee.ServiceAccountCredentials(ee_user, key_data=private_key) + _project_id = credentials.project_id + ee.Initialize(credentials=credentials, project=_project_id, http_transport=httplib2.Http()) @staticmethod def project_id() -> str: