Обработка тайм-аута DNS с помощью вызова blob_client.upload_blobPython

Программы на Python
Ответить
Anonymous
 Обработка тайм-аута DNS с помощью вызова blob_client.upload_blob

Сообщение Anonymous »

При использовании SDK хранилища Azure на Python мне не удалось переопределить 90-секундный тайм-аут по умолчанию, чтобы перехватить исключение DNS, возникающее при вызове blob_client.upload_blob(). Я ищу способ переопределить это с помощью более короткого интервала времени (например, 5 секунд).
Следующий код иллюстрирует эту проблему с использованием вымышленного имени учетной записи, которое DNS не может разрешить. Я использую аргумент таймаута в вызове upload_blob и понимаю из анализа документации, что это устанавливает пороговое значение на стороне сервера, а не на стороне клиента. Мне не удалось обеспечить принудительное соблюдение порогового значения на стороне клиента.
Эта проблема похожа на следующий вопрос без ответа: Как обработать тайм-аут для загрузки большого двоичного объекта в хранилище Azure с помощью Python SDK ?. Одно (не принятое) решение предлагает использовать порог тайм-аута в вызове upload_blob. Как отмечалось выше (и показано в приведенном ниже коде), это не дает желаемого эффекта.
from azure.core.exceptions import AzureError
from azure.storage.blob import BlobServiceClient

# Define Azure Storage Blob connection details
connection_string = "DefaultEndpointsProtocol=https;AccountName=test;AccountKey=removed==;EndpointSuffix=core.windows.net"
container_name = "containername"
blob_name = "blobname"
local_file_path = "c:/temp/test.txt"

# Create the BlobServiceClient
blob_service_client = BlobServiceClient.from_connection_string(connection_string)

# Function to perform the blob upload
def upload_blob_process():
try:
with open(local_file_path, "rb") as data:
blob_client = blob_service_client.get_blob_client(container_name, blob_name)
blob_client.upload_blob(data, timeout=5)
print("Blob uploaded successfully!")
except AzureError as e:
print(f"Azure error occurred: {e}")
except Exception as e:
print(f"An error occurred: {e}")

upload_blob_process()


Подробнее здесь: https://stackoverflow.com/questions/792 ... pload-blob
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»