Exportar (0) Imprimir
Expandir todo

Put Block

Actualizado: febrero de 2014

La operación Put Block crea un nuevo bloque que se confirmará como parte de un blob en bloques.

La solicitud Put Block se puede construir como sigue. Se recomienda HTTPS. Reemplace myaccount por el nombre de la cuenta de almacenamiento:

 

  URI de solicitud del método PUT Versión de HTTP

https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=block&blockid=id

HTTP/1.1

Al realizar una solicitud en el servicio de almacenamiento emulado, especifique el nombre de host del emulador y el puerto del servicio Blob como 127.0.0.1:10000, seguido del nombre de la cuenta de almacenamiento emulado:

 

  URI de solicitud del método PUT Versión de HTTP

http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=block&blockid=id

HTTP/1.1

Para obtener más información, vea Uso del emulador de almacenamiento de Azure para desarrollo y prueba.

 

Parámetro Descripción

blockid

Requerido. Valor de cadena de tipo Base64 válido que identifica el bloque. Para que se realice la codificación, el tamaño de la cadena debe ser menor o igual que 64 bytes.

Para un blob determinado, la longitud del valor especificado para el parámetro blockid debe ser igual para cada bloque.

Tenga en cuenta que la cadena de tipo Base64 debe estar codificada para URL.

timeout

Opcional. El parámetro timeout se expresa en segundos. Para obtener más información, vea Establecer los tiempos de espera para las operaciones del servicio Blob.

En la tabla siguiente se describen los encabezados de solicitud requeridos y opcionales.

 

Encabezado de solicitud Descripción

Authorization

Requerido. Especifica el esquema de autenticación, el nombre de la cuenta y la firma. Vea Autenticación para los servicios de almacenamiento de Azure para obtener más información.

Date O bien x-ms-date

Requerido. Especifica la hora universal coordinada (UTC) para la solicitud. Para obtener más información, vea Autenticación para los servicios de almacenamiento de Azure.

x-ms-version

Obligatorio para todas las solicitudes autenticadas. Especifica la versión de la operación que se utiliza para esta solicitud. Para obtener más información, vea Control de versiones de los servicios de almacenamiento de Azure.

Content-Length

Requerido. La longitud del contenido del bloque, en bytes. El tamaño del bloque debe ser menor o igual que 4 MB.

Si no se proporciona la longitud, la operación producirá un error con el código de estado 411 (Longitud necesaria).

Content-MD5

Opcional. Hash MD5 del contenido del bloque. Este hash se utiliza para comprobar la integridad del bloque durante el transporte. Cuando se especifica este encabezado, el servicio de almacenamiento compara el hash del contenido que ha llegado con este valor de encabezado.

Tenga en cuenta que este hash MD5 no se almacena con el blob.

Si ambos valores de hash no coinciden, la operación producirá un error con el código de estado 400 (Solicitud incorrecta).

x-ms-lease-id:<ID>

Obligatorio si el blob tiene una concesión activa. Para realizar esta operación en un blob con una concesión activa, especifique el identificador de concesión válido de este encabezado.

x-ms-client-request-id

Opcional. Proporciona un valor opaco generado por el cliente con un límite de caracteres de 1 KB que se graba en los registros de análisis cuando el registro de análisis de almacenamiento está habilitado. Se recomienda encarecidamente usar este encabezado para correlacionar las actividades del lado cliente con las solicitudes recibidas por el servidor. Para obtener más información, vea Acerca del registro del análisis de almacenamiento y Registro de Windows Azure: usar registros para realizar el seguimiento de las solicitudes de almacenamiento.

El cuerpo de la solicitud incluye el contenido del bloque.

Request Syntax:
PUT https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=block&blockid=AAAAAA%3D%3D HTTP/1.1

Request Headers:
x-ms-version: 2011-08-18
x-ms-date: Sun, 25 Sep 2011 14:37:35 GMT
Authorization: SharedKey myaccount:J4ma1VuFnlJ7yfk/Gu1GxzbfdJloYmBPWlfhZ/xn7GI=
Content-Length: 1048576

La respuesta incluye un código de estado HTTP y un conjunto de encabezados de respuesta.

Una operación correcta devuelve el código de estado 201 (Creado).

Para obtener información acerca de los códigos de estado, vea Códigos de estado y de error.

La respuesta para esta operación incluye los encabezados siguientes. La respuesta también puede incluir otros encabezados HTTP estándar. Todos los encabezados estándar cumplen la especificación del protocolo HTTP/1.1.

 

Encabezado de respuesta Descripción

Content-MD5

Este encabezado se devuelve para que el cliente pueda comprobar la integridad del contenido del mensaje. El valor de este encabezado lo calcula el servicio Blob; no es necesariamente el mismo valor que el especificado en los encabezados de solicitud.

x-ms-request-id

Este encabezado identifica de forma única la solicitud que se realizó y se puede utilizar para solucionar problemas relacionados con esta. Para obtener más información, vea Solucionar problemas relacionados con las operaciones de la API.

x-ms-version

Indica la versión del servicio Blob utilizado para ejecutar la solicitud. Este encabezado se devuelve para las solicitudes realizadas en la versión 2009-09-19 y versiones posteriores.

Date

Valor de fecha y hora UTC generado por el servicio que indica la hora a la que se inició la respuesta.

Response Status:
HTTP/1.1 201 Created

Response Headers:
Transfer-Encoding: chunked
Content-MD5: BN3lsXf+t19nMGs+vYakPA==
Date: Sun, 25 Sep 2011 23:47:09 GMT
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0

La llamada a esta operación la puede realizar el propietario de la cuenta y cualquiera que disponga de una firma de acceso compartido con permiso para escribir en el blob o en su contenedor.

Put Block carga un bloque para su futura inclusión en un blob en bloques. Un bloque puede tener un tamaño máximo de 4 MB.

Después de haber cargado un conjunto de bloques, puede crear o actualizar el blob en el servidor desde este conjunto llamando a la operación Put Block List. Cada bloque del conjunto se identifica mediante un identificador de bloque que es único dentro del blob. El ámbito de los identificadores de bloque es el blob, de modo que diferentes blobs pueden tener bloques con el mismo identificador.

Si llamas a Put Block en un blob que aún no existe, se creará un nuevo blob en bloques cuyo contenido tendrá una longitud de 0. Este blob lo enumera la operación List Blobs si se especifica la opción include=uncommittedblobs. El bloque o los bloques cargados no se confirman hasta que se llama a Put Block List en el nuevo blob. Un blob creado de esta manera se mantiene en el servidor durante una semana; si no se han agregado ni confirmado bloques en el blob durante ese período de tiempo, el blob será objeto de la recolección de elementos no utilizados.

El tamaño máximo de blob que admite actualmente la operación Put Block List es de 200 GB, con un máximo de 50.000 bloques. Un blob puede tener un máximo de 100.000 bloques sin confirmar en un momento dado, y el tamaño total del conjunto de bloques sin confirmar no puede superar los 400 GB. Si se superan estos máximos, el servicio devuelve el código de estado 413 (Entidad solicitada demasiado grande).

Un bloque que se ha cargado correctamente con la operación Put Block no se convierte en parte de un blob hasta que se confirma con Put Block List. Antes de que se llame a Put Block List para confirmar el blob nuevo o actualizado, las llamadas a Get Blob devuelven el contenido del blob sin la inclusión del bloque sin confirmar.

Si se carga un bloque con el mismo identificador de bloque que otro bloque aún sin confirmar, el último bloque cargado con ese identificador se confirmará en la próxima operación Put Block List correcta.

Después de llamar a Put Block List, todos los bloques sin confirmar especificados en la lista de bloques se confirman como parte del nuevo blob. Los bloques sin confirmar que no se hayan especificado en la lista de bloques del blob serán objeto de la recolección de elementos no utilizados y se quitarán del servicio Blob. Cualquier bloque sin confirmar también será objeto de la recolección de elementos no utilizados si no hay llamadas correctas a Put Block o a Put Block List en el mismo blob durante una semana desde la última operación Put Block correcta. Si se llama a Put Blob en el blob, cualquier bloque sin confirmar será objeto de la recolección de elementos no utilizados.

Si el blob tiene una concesión activa, el cliente debe especificar un identificador de concesión válido en la solicitud para poder escribir un bloque en el blob. Si el cliente no especifica un identificador de concesión o especifica un identificador de concesión no válido, el servicio Blob devuelve el código de estado 412 (Error de condición previa). Si el cliente especifica un identificador de concesión, pero el blob no dispone de una concesión activa, el servicio Blob también devuelve el código de estado 412 (Error de condición previa).

En un blob determinado, todos los identificadores de bloque deben tener la misma longitud. Si se carga un bloque con un identificador de grupo de distinta longitud que los identificadores de bloque de los bloques sin confirmar existentes, el servicio devuelve el código de respuesta de error 400 (Solicitud incorrecta).

Si intenta cargar un bloque mayor de 4 MB, el servicio devuelve el código de estado 413 (Entidad solicitada demasiado grande). El servicio Blob también devuelve información adicional sobre el error en la respuesta, incluyendo el tamaño máximo de bloque permitido en bytes.

Una llamada a Put Block no actualiza la última hora de modificación de los blobs existentes.

Una llamada a Put Block en un blob en páginas devuelve un error.

Mostrar:
© 2014 Microsoft