diff --git a/api/extensions/storage/azure_blob_storage.py b/api/extensions/storage/azure_blob_storage.py index eff7743cc29c4f..7448fd4a6bb4be 100644 --- a/api/extensions/storage/azure_blob_storage.py +++ b/api/extensions/storage/azure_blob_storage.py @@ -1,7 +1,8 @@ from collections.abc import Generator from datetime import UTC, datetime, timedelta +from typing import Optional -from azure.identity import DefaultAzureCredential +from azure.identity import ChainedTokenCredential, DefaultAzureCredential from azure.storage.blob import AccountSasPermissions, BlobServiceClient, ResourceTypes, generate_account_sas from configs import dify_config @@ -19,6 +20,7 @@ def __init__(self): self.account_name = dify_config.AZURE_BLOB_ACCOUNT_NAME self.account_key = dify_config.AZURE_BLOB_ACCOUNT_KEY + self.credential: Optional[ChainedTokenCredential] = None if self.account_key == "managedidentity": self.credential = DefaultAzureCredential() else: @@ -64,7 +66,7 @@ def delete(self, filename): def _sync_client(self): if self.account_key == "managedidentity": - return BlobServiceClient(account_url=self.account_url, credential=self.credential) + return BlobServiceClient(account_url=self.account_url, credential=self.credential) # type: ignore cache_key = "azure_blob_sas_token_{}_{}".format(self.account_name, self.account_key) cache_result = redis_client.get(cache_key)