diff --git a/src/backend/base/langflow/services/storage/s3.py b/src/backend/base/langflow/services/storage/s3.py index c8afdf5a9697..4dd9a6db4835 100644 --- a/src/backend/base/langflow/services/storage/s3.py +++ b/src/backend/base/langflow/services/storage/s3.py @@ -50,8 +50,9 @@ def __init__(self, session_service: SessionService, settings_service: SettingsSe raise ImportError(msg) from exc # Create session - AWS credentials are picked up from environment variables + self._aioboto3 = aioboto3 self.session = aioboto3.Session() - self._client = None + self._client = None # Persisted for quick reuse self.set_ready() logger.info( @@ -87,7 +88,10 @@ def resolve_component_path(self, logical_path: str) -> str: def _get_client(self): """Get or create an S3 client using the async context manager.""" - return self.session.client("s3") + if self._client is None: + # Only create the client once and cache it for future calls. + self._client = self.session.client("s3") + return self._client async def save_file(self, flow_id: str, file_name: str, data: bytes) -> None: """Save a file to S3.