Exportar (0) Imprimir
Expandir todo

Put Blob

Actualizado: enero de 2014

La operación Put Blob crea un nuevo blob en bloques o en páginas, o actualiza el contenido de un blob en bloques existente.

La actualización de un blob en bloques existente sobrescribe los metadatos existentes en él. Las actualizaciones parciales no se admiten con Put Blob; el contenido del blob existente se sobrescribe con el contenido del nuevo. Para realizar una actualización parcial del contenido de un blob en bloques, utilice la operación Put Block List.

Tenga en cuenta que llamar a Put Blob para crear un blob en páginas solo inicializa el blob. Para agregar contenido a un blob en páginas, llame a la operación Put Page.

La solicitud Put Blob 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

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

HTTP/1.1

Tenga en cuenta que el emulador de almacenamiento solo admite blobs con un tamaño máximo de 2 GB.

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

Se pueden especificar los parámetros adicionales siguientes en el URI de solicitud.

 

Parámetro Descripción

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 obligatorios y opcionales para las operaciones en blobs en bloques y blobs en páginas.

 

Encabezado de solicitud Descripción

Authorization

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

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 de la solicitud.

Para un blob en páginas, el valor de este encabezado debe establecerse en cero, ya que Put Blob solo se utiliza para inicializar el blob en páginas. El tamaño del blob en páginas se especifica en el encabezado x-ms-blob-content-length. Todo el contenido de un blob en páginas se debe escribir mediante una llamada a Put Page.

Content-Type

Opcional. El tipo de contenido MIME del blob. El tipo predeterminado es application/octet-stream.

Content-Encoding

Opcional. Especifica las codificaciones de contenido que se han aplicado al blob. Este valor se devuelve al cliente al realizar la operación Get Blob en el recurso de blob. El cliente puede utilizar este valor cuando se devuelve para descodificar el contenido del blob.

Content-Language

Opcional. Especifica los idiomas naturales utilizados por este recurso.

Content-MD5

Opcional. Hash MD5 del contenido del blob. Este hash se utiliza para comprobar la integridad del blob durante el transporte. Cuando se especifica este encabezado, el servicio de almacenamiento compara el hash que ha llegado con el que se envió. Si ambos valores de hash no coinciden, la operación producirá un error con el código de estado 400 (Solicitud incorrecta).

Cuando se omite en la versión 2012-02-12 y versiones posteriores, el servicio Blob genera un hash MD5.

Los resultados de Get Blob, Get Blob Properties y List Blobs incluyen el hash MD5.

Cache-Control

Opcional. El servicio Blob almacena este valor pero no lo utiliza ni lo modifica.

x-ms-blob-content-type

Opcional. Establece el tipo de contenido del blob.

x-ms-blob-content-encoding

Opcional. Establece la codificación de contenido del blob.

x-ms-blob-content-language

Opcional. Establece el idioma del contenido del blob.

x-ms-blob-content-md5

Opcional. Establece el hash MD5 del blob.

x-ms-blob-cache-control

Opcional. Establece el control de caché del blob.

x-ms-blob-type:<BlockBlob | PageBlob>

Requerido. Especifica el tipo de blob que se debe crear: blob en bloques o blob en páginas.

x-ms-meta-name:value

Opcional. Pares nombre-valor asociados al blob como metadatos.

Tenga en cuenta que, a partir de la versión 2009-09-19, los nombres de los metadatos deben cumplir las reglas de nomenclatura para los Identificadores de C#.

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-blob-content-disposition

Opcional. Establece el encabezado Content-Disposition del blob. Disponible para las versiones 2013-08-15 y posteriores.

El campo de encabezado de respuesta Content-Disposition transmite información adicional sobre cómo procesar la carga de respuesta y también se puede utilizar para adjuntar metadatos adicionales. Por ejemplo, si se establece en attachment, indica que el agente de usuario no debe mostrar la respuesta, sino que debe mostrar en su lugar un cuadro de diálogo Guardar como con un nombre de archivo distinto del nombre de blob especificado.

La respuesta de las operaciones Get Blob y Get Blob Properties incluye el encabezado content-disposition.

Origin

Opcional. Especifica el origen del que se emitirá la solicitud. La presencia de este encabezado da lugar a encabezados de uso compartido de recursos entre orígenes (CORS) en la respuesta. Vea Compatibilidad con Uso compartido de recursos entre orígenes (CORS) para los Servicios de almacenamiento de Azure para obtener información más detallada.

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.

Esta operación también admite el uso de encabezados condicionales para escribir en el blob solo si se cumple una condición especificada. Para obtener más información, vea Especificar encabezados condicionales para las operaciones del servicio Blob.

En la tabla siguiente se describen los encabezados de solicitud aplicables únicamente a las operaciones en blobs en páginas.

 

Encabezado de solicitud Descripción

x-ms-blob-content-length: bytes

Obligatorio para los blobs en páginas. Este encabezado especifica el tamaño máximo del blob en páginas, hasta 1 TB. El tamaño del blob en páginas se debe alinear con un límite de 512 bytes.

Si se especifica este encabezado para un blob en bloques, el servicio Blob devuelve el código de estado 400 (Solicitud incorrecta).

x-ms-blob-sequence-number: <num>

Opcional. Solo se establece para los blobs en páginas. El número de secuencia es un valor controlado por el usuario que se puede utilizar para hacer un seguimiento de las solicitudes. El valor del número de secuencia debe estar comprendido entre 0 y 2^63 - 1. El valor predeterminado es 0.

En un blob en bloques, el cuerpo de la solicitud incluye el contenido del blob.

En un blob en páginas, el cuerpo de la solicitud está vacío.

En el ejemplo siguiente se muestra una solicitud para crear un blob en bloques:

Request Syntax:
PUT https://myaccount.blob.core.windows.net/mycontainer/myblockblob HTTP/1.1

Request Headers:
x-ms-version: 2013-08-15
x-ms-date: Wed, 23 Oct 2013 22:33:355 GMT
Content-Type: text/plain; charset=UTF-8
x-ms-blob-content-disposition: attachment; filename="fname.ext"
x-ms-blob-type: BlockBlob
x-ms-meta-m1: v1
x-ms-meta-m2: v2
Authorization: SharedKey myaccount:YhuFJjN4fAR8/AmBrqBz7MG2uFinQ4rkh4dscbj598g=
Content-Length: 11

Request Body:
hello world

Esta solicitud de ejemplo crea un blob en páginas y especifica su tamaño máximo como 1.024 bytes. Tenga en cuenta que debe llamar a Put Page para agregar contenido a un blob en páginas:

Request Syntax:
PUT https://myaccount.blob.core.windows.net/mycontainer/mypageblob HTTP/1.1

Request Headers:
x-ms-version: 2013-08-15
x-ms-date: Wed, 23 Oct 2013 22:41:55 GMT
Content-Type: text/plain; charset=UTF-8
x-ms-blob-type: PageBlob
x-ms-blob-content-length: 1024
x-ms-blob-sequence-number: 0
Authorization: SharedKey 
Origin: http://contoso.com
Vary: Origin
myaccount:YhuFJjN4fAR8/AmBrqBz7MG2uFinQ4rkh4dscbj598g=
Content-Length: 0

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

ETag

La ETag contiene un valor que el cliente puede usar para realizar operaciones PUT condicionales mediante el encabezado de solicitud If-Match. Si la versión de la solicitud es 2011-08-18 o una más reciente, el valor ETag estará entre comillas.

Last-Modified

La fecha y la hora en la que se modificó por última vez el blob. El formato de la fecha sigue las convenciones de RFC 1123. Para obtener más información, vea Representación de valores de fecha u hora en encabezados.

Cualquier operación de escritura realizada en el blob (incluidas las actualizaciones de los metadatos o las propiedades del blob) cambia la hora de la última modificación del blob.

Content-MD5

Este encabezado se devuelve para un blob en bloques de forma que el cliente pueda comprobar la integridad del contenido del mensaje. El valor Content-MD5 devuelto lo calcula el servicio Blob. En la versión 2012-02-12 y versiones posteriores, este encabezado se devuelve aunque la solicitud no incluya los encabezados Content-MD5 o x-ms-blob-content-md5.

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.

Access-Control-Allow-Origin

Se devuelve si la solicitud incluye un encabezado Origin y se ha habilitado CORS con una regla de coincidencia. Este encabezado devuelve el valor del encabezado Origin de la solicitud en caso de que haya una coincidencia.

Access-Control-Expose-Headers

Se devuelve si la solicitud incluye un encabezado Origin y se ha habilitado CORS con una regla de coincidencia. Devuelve la lista de encabezados de respuesta que se van a exponer al cliente o el emisor de la solicitud.

Access-Control-Allow-Credentials

Se devuelve si la solicitud incluye un encabezado Origin y se ha habilitado CORS con una regla de coincidencia que no permite todos los orígenes. Este encabezado se establecerá en true.

Response Status:
HTTP/1.1 201 Created

Response Headers:
Transfer-Encoding: chunked
Content-MD5: sQqNsWTgdUEFt6mb5y4/5Q==
Date: Wed, 23 Oct 2013 22:33:35 GMT
ETag: "0x8CB171BA9E94B0B"
Last-Modified: Wed, 23 Oct 2013 22:30:15 GMT
Access-Control-Allow-Origin: http://contoso.com
Access-Control-Expose-Headers: Content-MD5
Access-Control-Allow-Credentials: True
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 cualquier cliente que disponga de una firma de acceso compartido con permiso para escribir en este blob o en su contenedor.

Al crear un blob, se debe especificar si es un blob en bloques o un blob en páginas. Una vez que se ha creado un blob, su tipo no se puede cambiar a menos que se elimine y se vuelva a crear.

Para crear un nuevo blob en páginas, primero inicialice el blob llamando a Put Blob y especifique su tamaño máximo, hasta 1 TB. Al crear un blob en páginas, no incluya contenido en el cuerpo de la solicitud. Una vez creado el blob, llame a Put Page para agregar contenido al blob o modificarlo.

Un blob en bloques puede tener un tamaño máximo de carga de 64 MB. Si el blob tiene más de 64 MB, debe cargarlo como un conjunto de bloques. Para obtener más información, vea las operaciones Put Block y Put Block List. No es necesario llamar a Put Blob si se carga el blob como un conjunto de bloques.

Si intenta cargar un blob en bloques de más de 64 MB o un blob en páginas de más de 1 TB, 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 blob permitido en bytes.

Si se llama a Put Blob para sobrescribir un blob existente con el mismo nombre, las instantáneas asociadas al blob original se conservan. Para quitar las instantáneas asociadas, primero llame a Delete Blob y, a continuación, a Put Blob para volver a crear el blob.

Un blob tiene propiedades personalizadas (establecidas mediante encabezados) que pueden utilizarse para almacenar valores asociados a encabezados HTTP estándar. Estos valores se pueden leer posteriormente llamando a Get Blob Properties, o modificar llamando a Set Blob Properties. Los encabezados de propiedad personalizados y el encabezado HTTP estándar correspondiente aparecen en la tabla siguiente:

 

Encabezado HTTP Encabezado de propiedad de blob personalizado

Content-Type

x-ms-blob-content-type

Content-Encoding

x-ms-blob-content-encoding

Content-Language

x-ms-blob-content-language

Content-MD5

x-ms-blob-content-md5

Cache-Control

x-ms-blob-cache-control

La semántica para establecer y conservar estos valores de propiedad con el blob es la siguiente:

  • Si el cliente especifica un encabezado de propiedad personalizado, indicado por el prefijo x-ms-blob, este valor se almacena con el blob.

  • Si el cliente especifica un encabezado HTTP estándar, pero no el encabezado de propiedad personalizado, el valor se almacena en la propiedad personalizada correspondiente asociada al blob, y se devuelve mediante una llamada a Get Blob Properties. Por ejemplo, si el cliente establece el encabezado Content-Type en la solicitud, ese valor se almacena en la propiedad x-ms-blob-content-type del blob.

  • Si el cliente establece el encabezado HTTP estándar y el encabezado de propiedad correspondiente en la misma solicitud, la solicitud PUT utiliza el valor suministrado para el encabezado HTTP estándar, pero el valor especificado para el encabezado de propiedad personalizado se conserva con el blob y lo devuelven las solicitudes GET posteriores.

Si el blob tiene una concesión activa, el cliente debe especificar un identificador de concesión válido en la solicitud para poder sobrescribir 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). Si el cliente especifica un identificador de concesión en un blob que aún no existe, el servicio Blob devolverá el código de estado 412 (Error de condición previa) para las solicitudes realizadas en la versión 2013-08-15 y posteriores; para las versiones anteriores, el servicio Blob devolverá el código de estado 201 (Creado).

Si una operación Put Blob sobrescribe un blob existente con una concesión activa, la concesión se mantiene en el blob actualizado hasta que caduque o se libere.

Una operación Put Blob dispone de 10 minutos por MB para completarse. Si la operación tarda más de 10 minutos por MB como promedio, se agotará el tiempo de espera para la operación.

Mostrar:
© 2014 Microsoft