Exportar (0) Imprimir
Expandir todo

Establecer los tiempos de espera para las operaciones del servicio Blob

Actualizado: octubre de 2011

Cada llamada a la API de un servicio Blob puede incluir un intervalo de tiempo de espera, que se utiliza de dos maneras diferentes.

  • El servicio Blob devuelve un error cuando transcurre el intervalo de tiempo de espera mientras se procesa la solicitud.

  • Si utiliza un cliente de almacenamiento, este inicia una excepción si no recibe una respuesta de código de estado HTTP del servicio durante el intervalo de tiempo de espera. El tiempo de espera solo afecta a la recepción de códigos de estado; no afecta a la recepción del cuerpo del mensaje ni a la finalización de la transferencia de datos al cliente.

El intervalo de tiempo de espera predeterminado es de 30 segundos para las llamadas de REST al servicio Blob. Treinta segundos es también el intervalo máximo de tiempo de espera para las operaciones del servicio Blob, con algunas excepciones que se mencionan a continuación. El servicio Blob reduce los tiempos de espera superiores a 30 segundos. De forma predeterminada, los clientes de almacenamiento especifican un tiempo de espera de 90 segundos con la mayoría de las llamadas al servicio Blob. El servicio Blob devolverá un error si no puede preparar una respuesta apropiada en 30 segundos, y el cliente de almacenamiento esperará 90 segundos para producir una excepción si no recibe ninguna respuesta.

El intervalo de tiempo de espera se puede establecer para una única solicitud de blob utilizando Microsoft.WindowsAzure.StorageClient.BlobRequestOptions.Timeout, y el intervalo de tiempo de espera predeterminado para todos los clientes de almacenamiento de blobs se puede establecer mediante Microsoft.WindowsAzure.StorageClient.CloudBlobClient.Timeout.

El URI de REST del ejemplo siguiente establece el intervalo de tiempo de espera para la operación List Containers en 20 segundos:

GET https://myaccount.blob.core.windows.net?comp=list&timeout=20

El ejemplo de C# siguiente establece el tiempo de espera para el cliente de almacenamiento en 5 minutos para una única descarga de blobs:

BlobRequestOptions largeBlobDownloadOptions = new BlobRequestOptions()
{
  Timeout = TimeSpan.FromMinutes(5) // Larger timeout for larger file
};
blob.DownloadToFile(largeBlobDownloadOptions);

Las operaciones siguientes implementan excepciones al intervalo de tiempo de espera estándar de 30 segundos:

  • Las llamadas para obtener un blob, intervalos de páginas o una lista de bloques disponen de 2 minutos por megabyte para completarse. Si una operación tarda más de 2 minutos por megabyte como promedio, se agotará el tiempo de espera.

  • La llamadas para escribir un blob, un bloque o una página disponen de 10 minutos por megabyte para completarse. Si una operación tarda más de 10 minutos por megabyte como promedio, se agotará el tiempo de espera.

  • El tiempo de espera máximo para escribir una lista de bloques es de 60 segundos.

  • Un contenedor eliminado recientemente no se puede volver a crear hasta que todos sus blobs se eliminan. Dependiendo de la cantidad de datos almacenada en el contenedor, la eliminación completa puede tardar segundos o minutos. Si intenta crear un contenedor con el mismo nombre durante este período de limpieza, la llamada devolverá un error inmediatamente.

Vea también

Mostrar:
© 2014 Microsoft