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 |
![]() |
NFS |
![]() |
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:
|
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:
|
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