Compartir a través de


Put Range

La operación Put Range escribe un intervalo de bytes en un archivo. Esta operación se admite en la versión 2025-05-05 y posteriores para recursos compartidos de archivos con el protocolo NFS habilitado.

Disponibilidad del protocolo

Protocolo habilitado para recursos compartidos de archivos Disponible
SMB sí
NFS sí

Pedir

La solicitud Put Range se construye de la siguiente manera. Se recomienda usar HTTPS.

Método URI de solicitud Versión HTTP
PONER https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile?comp=range HTTP/1.1

Reemplace los componentes de ruta de acceso que se muestran en el URI de solicitud por el suyo propio, como se indica a continuación:

Componente de ruta de acceso Descripción
myaccount Nombre de la cuenta de almacenamiento.
myshare Nombre del recurso compartido de archivos.
mydirectorypath Opcional. Ruta de acceso al directorio primario.
myfile Nombre del archivo.

Para obtener información sobre las restricciones de nomenclatura de rutas de acceso, vea Recursos compartidos de nombres y referencia, directorios, archivos y metadatos.

Parámetros de URI

Se pueden especificar los siguientes parámetros adicionales 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, consulte Establecer tiempos de espera para las operaciones del servicio de archivos.

Encabezados de solicitud

Los encabezados de solicitud obligatorios y opcionales se describen en las tablas siguientes:

Encabezados de solicitud comunes

Encabezado de solicitud Descripción
Authorization Obligatorio. Especifica el esquema de autorización, el nombre de la cuenta y la firma. Para más información, consulte Autorizar solicitudes a Azure Storage.
Date o x-ms-date Obligatorio. Especifica la hora universal coordinada (UTC) de la solicitud. Para más información, consulte Autorizar solicitudes a Azure Storage.
x-ms-version Necesario para todas las solicitudes autorizadas. Especifica la versión de la operación que se va a usar para esta solicitud. Esta operación se admite en la versión 2025-05-05 y posteriores para recursos compartidos de archivos con el protocolo NFS habilitado.

Para más información, consulte Control de versiones de para los servicios de Azure Storage.
Range o x-ms-range Se requiere Range o x-ms-range.

Especifica el intervalo de bytes que se va a escribir. Se deben especificar el inicio y el final del intervalo. Este encabezado se define mediante la especificación del protocolo HTTP/1.1 de .

Para una operación de actualización, el intervalo puede tener un tamaño de hasta 4 MiB. Para una operación clara, el intervalo puede ser hasta el valor del tamaño completo del archivo.

El servicio File acepta solo un solo intervalo de bytes para los encabezados Range y x-ms-range, y el intervalo de bytes debe especificarse en el formato siguiente: bytes=startByte-endByte.

Si se especifican Range y x-ms-range, el servicio usa el valor de x-ms-range. Para obtener más información, vea Especificar el encabezado de intervalo para las operaciones del servicio de archivos.
Content-Length Obligatorio. Especifica el número de bytes que se transmiten en el cuerpo de la solicitud. Cuando el encabezado x-ms-write se establece en clear, el valor de este encabezado debe establecerse en 0.
Content-MD5 Opcional. Hash MD5 del contenido. Este hash se usa para comprobar la integridad de los datos durante el transporte. Cuando se especifica el encabezado Content-MD5, Azure Files compara el hash del contenido que ha llegado con el valor de encabezado que se envió. Si los dos hash no coinciden, se produce un error en la operación con el código de error 400 (solicitud incorrecta).

El encabezado Content-MD5 no se permite cuando el encabezado x-ms-write está establecido en clear. Si se incluye con la solicitud, el servicio File devuelve el código de estado 400 (solicitud incorrecta).
x-ms-write: { update ¦ clear } Obligatorio. Debe especificar una de las siguientes opciones:
  • update: escribe los bytes especificados por el cuerpo de la solicitud en el intervalo especificado. Los encabezados Range y Content-Length deben coincidir para realizar la actualización.
  • clear: borra el intervalo especificado y libera el espacio utilizado en el almacenamiento de ese intervalo. Para borrar un intervalo, establezca el encabezado Content-Length en 0y establezca el encabezado Range en un valor que indique el intervalo que se va a borrar, hasta el tamaño máximo de archivo.
x-ms-lease-id:<ID> Obligatorio si el archivo tiene una concesión activa. Disponible para la versión 2019-02-02 y posteriores.

Este encabezado se omite si el archivo se encuentra en un recurso compartido de archivos con el protocolo NFS habilitado, que no admite concesiones de archivos.
x-ms-client-request-id Opcional. Proporciona un valor opaco generado por el cliente con un límite de caracteres de 1 kibibyte (KiB) que se registra en los registros cuando se configura el registro. Se recomienda encarecidamente usar este encabezado para correlacionar las actividades del lado cliente con las solicitudes que recibe el servidor. Para más información, consulte Monitor Azure Files.
x-ms-file-last-write-time: { now ¦ preserve } Opcional. Versión 2021-06-08 y posteriores. Puede especificar una de las siguientes opciones:
  • now: valor predeterminado. Actualiza la marca de tiempo de última escritura a la hora de la solicitud.
  • preserve: mantiene la marca de tiempo de última escritura existente sin cambios.
x-ms-file-request-intent Obligatorio si Authorization encabezado especifica un token de OAuth. El valor aceptable es backup. Este encabezado especifica que se debe conceder el Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action o Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action si se incluyen en la directiva de RBAC asignada a la identidad autorizada mediante el encabezado Authorization. Disponible para la versión 2022-11-02 y posteriores.
x-ms-allow-trailing-dot: { <Boolean> } Opcional. Versión 2022-11-02 y posteriores. El valor booleano especifica si se debe recortar o no un punto final presente en la dirección URL de solicitud.

Este encabezado se omite si el destino se encuentra en un recurso compartido de archivos con el protocolo NFS habilitado, que admite el punto final de forma predeterminada.

Para obtener más información, vea Asignar nombres y hacer referencia a recursos compartidos, directorios, archivos y metadatos.

Encabezados de solicitud solo SMB

Ninguno.

Encabezados de solicitud solo NFS

Ninguno.

Cuerpo de la solicitud

Datos que representan el intervalo que se va a cargar.

Solicitud de ejemplo: Actualización del intervalo de bytes

Request Syntax:  
PUT https://myaccount.file.core.windows.net/myshare/myfile?comp=range HTTP/1.1  
  
Request Headers:  
x-ms-write: update  
x-ms-date: Mon, 27 Jan 2014 22:15:50 GMT  
x-ms-version: 2014-02-14  
x-ms-range: bytes=0-65535  
Authorization: SharedKey myaccount:4KdWDiTdA9HmIF9+WF/8WfYOpUrFhieGIT7f0av+GEI=  
Content-Length: 65536  

Solicitud de ejemplo: Borrar intervalo de bytes

Request Syntax:  
PUT https://myaccount.file.core.windows.net/myshare/myfile?comp=range HTTP/1.1  
  
Request Headers:  
Range: bytes=1024-2048  
x-ms-write: clear  
x-ms-date: Mon, 27 Jan 2014 23:37:35 GMT  
x-ms-version: 2014-02-14  
Authorization: SharedKey myaccount:4KdWDiTdA9HmIF9+WF/8WfYOpUrFhieGIT7f0av+GEI=  

Respuesta

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

Código de estado

Una operación correcta devuelve el código de estado 201 (creado). Para obtener más información sobre los códigos de estado, vea Códigos de estado y de error.

Encabezados de respuesta

La respuesta de esta operación incluye los encabezados de las tablas siguientes. La respuesta también puede incluir encabezados HTTP estándar adicionales. Todos los encabezados estándar se ajustan a la especificación del protocolo HTTP/1.1 de .

Encabezados de respuesta comunes

Encabezado de respuesta Descripción
ETag La ETag contiene un valor que representa la versión del archivo. El valor se incluye entre comillas.
Last-Modified Devuelve la fecha y hora en que se modificó por última vez el directorio. El formato de fecha sigue a RFC 1123. Para obtener más información, vea Representar valores de fecha y hora en encabezados. Cualquier operación que modifique el recurso compartido o sus propiedades o metadatos actualiza la hora de la última modificación. Las operaciones en archivos no afectan a la hora de la última modificación del recurso compartido.
Content-MD5 Este encabezado se devuelve para que el cliente pueda comprobar la integridad del contenido del mensaje. El servicio File calcula el valor de este encabezado. No es necesariamente el mismo que el valor especificado en los encabezados de solicitud.
x-ms-request-id Identifica de forma única la solicitud que se realizó y se puede usar para solucionar problemas de la solicitud. Para obtener más información, consulte Solución de problemas de operaciones de API.
x-ms-version Indica la versión del servicio file que se usó para ejecutar la solicitud.
Date Valor de fecha y hora UTC generado por el servicio, que indica la hora en que se inició la respuesta.
x-ms-request-server-encrypted: { true ¦ false } Versión 2017-04-17 y posteriores. El valor de este encabezado se establece en true si el contenido de la solicitud se cifra correctamente mediante el algoritmo especificado. De lo contrario, el valor se establece en false.
x-ms-client-request-id Este encabezado se puede usar para solucionar problemas de solicitudes y respuestas correspondientes. El valor de este encabezado es igual al valor del encabezado x-ms-client-request-id si está presente en la solicitud y el valor no contiene más de 1024 caracteres ASCII visibles. Si el encabezado x-ms-client-request-id no está presente en la solicitud, no está presente en la respuesta.
x-ms-file-last-write-time Versión 2021-06-08 y posteriores. La última hora de escritura del archivo, en el formato ISO 8601. Ejemplo: 2017-05-10T17:52:33.9551861Z.

Encabezados de respuesta solo SMB

Ninguno.

Encabezados de respuesta solo NFS

Ninguno.

Cuerpo de la respuesta

Ninguno.

Respuesta de ejemplo

Response Status:  
HTTP/1.1 201 Created  

Response Headers:  
Transfer-Encoding: chunked  
Content-MD5: sQqNsWTgdUEFt6mb5y4/5Q==  
Date:Mon, 27 Jan 2014 22:33:35 GMT  
ETag: "0x8CB171BA9E94B0B"  
Last-Modified: Mon, 27 Jan 2014 12:13:31 GMT  
x-ms-version: 2014-02-14  
Content-Length: 0  
Server: Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0  

Autorización

Solo el propietario de la cuenta puede llamar a esta operación.

Observaciones

La operación Put Range escribe un intervalo de bytes en un archivo. Solo se puede llamar a esta operación en un archivo existente. No se puede llamar a para crear un nuevo archivo. Llamar a Put Range con un nombre de archivo que no existe actualmente devuelve el código de estado 404 (no encontrado).

Para crear un nuevo archivo, llame a Create File. Un archivo puede tener un tamaño de hasta 4 TiB.

Se permite que se complete una operación Put Range 10 minutos por MiB. Si la operación tarda más de 10 minutos por MiB en promedio, agota el tiempo de espera.

Si el archivo tiene una concesión activa, el cliente debe especificar un identificador de concesión válido en la solicitud para escribir un intervalo.

operaciones de actualización de intervalo

Al llamar a Put Range con la opción Update, se realiza una escritura local en el archivo especificado. Cualquier contenido del intervalo especificado se sobrescribe con la actualización. Cada intervalo enviado con Put Range para una operación de actualización puede tener un tamaño de hasta 4 MiB. Si intenta cargar un intervalo mayor que 4 MiB, el servicio devuelve el código de estado 413 (Solicitar entidad demasiado grande).

operaciones de borrado de intervalo

Al llamar a Put Range con la opción Clear se libera el espacio en el almacenamiento siempre que el intervalo especificado esté alineado con 512 bytes. Los intervalos que se han borrado ya no se realizan el seguimiento como parte del archivo y no se devuelven en la respuesta de List Range. Si el intervalo especificado no está alineado con 512 bytes, la operación escribe ceros en el inicio o el final del intervalo que no está alineado con 512 bytes y libera el resto del intervalo dentro de ese intervalo alineado con 512 bytes.

Los intervalos que no se han borrado se devuelven en la respuesta de Intervalos de lista. Para obtener un ejemplo, vea la sección "Ejemplo de intervalo no desactivado" que se muestra a continuación.

de concesión de archivos

Puede llamar a archivo de concesión para obtener un bloqueo de escritura exclusivo en el archivo en otras escrituras durante un período infinito.

bloqueos de intervalo de bytes de cliente SMB

El protocolo SMB permite que los bloqueos de intervalo de bytes administren el acceso de lectura y escritura a las regiones de un archivo. Esto significa que Put Range en un archivo ubicado en un recurso compartido de archivos con el protocolo SMB habilitado produce un error si un cliente SMB tiene un bloqueo que se superpone con el intervalo especificado por la operación de Put Range mediante x-ms-range. Para obtener más información, consulte Administrar bloqueos de archivos.

bloqueos de intervalo de bytes de cliente NFS

Los bloqueos de intervalo de bytes POSIX del protocolo NFS son avisos por naturaleza, por lo que el Put Range en un archivo ubicado en un recurso compartido de archivos con el protocolo NFS habilitado no producirá un error incluso si hay un bloqueo de intervalo de bytes en conflicto mantenido por un cliente NFS.

notificaciones de cambio de directorio de cliente de SMB

El protocolo SMB admite la función de API FindFirstChangeNotification que permite a las aplicaciones detectar cuándo se producen cambios en el sistema de archivos. Puede detectar cuándo se agrega, cambia o elimina un archivo o directorio, y cuando cambian el tamaño, los atributos o los descriptores de seguridad de un archivo. Los clientes SMB que usan esta API no recibirán notificaciones cuando se produzca un cambio de archivo o directorio a través de la API REST de Azure Files. Sin embargo, los cambios causados por otros clientes SMB propagan notificaciones.

Ejemplo de intervalo no asignado

Supongamos que se crea un archivo con Crear archivo y se escribe un único intervalo con Put Range, como se indica a continuación:

Request Syntax:  
PUT https://myaccount.file.core.windows.net/myshare/myfile?comp=range HTTP/1.1  

Request Headers:  
x-ms-write: updte  
x-ms-date: Mon, 27 Jan 2014 22:15:50 GMT  
x-ms-version: 2014-02-14  
x-ms-range: bytes=0-65536  
Authorization: SharedKey myaccount:4KdWDiTdA9HmIF9+WF/8WfYOpUrFhieGIT7f0av+GEI=  
Content-Length: 65536  

Al realizar una operación de Rangos de lista en el archivo, se devuelve el siguiente cuerpo de respuesta:

<?xml version="1.0" ecoding="utf-8"?>  
<Ranges>  
<Range>  
<Start>0</Start>  
<End>65536</End>  
</Range>  
</Ranges>  

Ahora supongamos que se realiza una operación de intervalo de bytes de intervalo no asignado:

Request Syntax:  
PUT https://myaccount.file.core.windows.net/myshare/myfile?comp=range HTTP/1.1  

Request Headers:  
Range: bytes=768-2304  
x-ms-write: clear  
x-ms-date: Mon, 27 Jan 2014 23:37:35 GMT  
x-ms-version: 2014-02-14  
Authorization: SharedKey myaccount:4KdWDiTdA9HmIF9+WF/8WfYOpUrFhieGIT7f0av+GEI=  

Una operación intervalos de lista posteriores en el archivo devuelve el siguiente cuerpo de respuesta:

<?xml version="1.0" encoding="utf-8"?>  
<Ranges>  
<Range>  
<Start>0</Start>  
<End>1024</End>  
</Range>  
<Range>  
<Start>2048</Start>  
<End>65535</End>  
</Range>  
</Ranges>  

Tenga en cuenta que se han escrito ceros en el espacio no asignado desde 768-1024 y 2048-2304.

Put Range no se admite en una instantánea de recurso compartido, que es una copia de solo lectura de un recurso compartido. Se produce un error en un intento de realizar esta operación en una instantánea de recurso compartido con 400 (InvalidQueryParameterValue).

Consulte también

Operaciones de en archivos