Solicitud preparatoria de archivos

La Preflight File Request operación consulta las reglas de uso compartido de recursos entre orígenes (CORS) para Azure Files antes de enviar la solicitud.

Un explorador web u otro agente de usuario envía una solicitud preparatoria que incluye el dominio de origen, el método y los encabezados de la solicitud que el agente quiere realizar. Si CORS está habilitado para Azure Files, Azure Files evalúa la solicitud preparatoria en las reglas de CORS que el propietario de la cuenta ha configurado a través de Establecer propiedades del servicio de archivos. Azure Files luego acepta o rechaza la solicitud.

Para más información sobre CORS y la solicitud preparatoria, consulte la especificación de CORS y la compatibilidad con CORS para Azure Storage.

Disponibilidad del protocolo

Protocolo de recurso compartido de archivos habilitado Disponible
SMB Sí
NFS Sí

Solicitud

Puede especificar Preflight File Request como se indica a continuación. Reemplace <account-name> por el nombre de la cuenta de almacenamiento. Reemplace por <file-resource> el recurso compartido, directorio o archivo que será el destino de la solicitud.

Verbo HTTP URI de solicitud Versión de HTTP
OPTIONS http://<account-name>.file.core.windows.net/<file-resource>

http://<account-name>.file.core.windows.net/<file-resource>?restype=share

http://<account-name>.file.core.windows.net/<file-resource>?restype=directory
HTTP/1.1

El URI siempre debe incluir la barra diagonal (/) para separar el nombre de host de la ruta de acceso y las partes de consulta del URI. En el caso de esta operación, la parte de ruta de acceso del URI puede estar vacía o puede apuntar a cualquier recurso Azure Files. Si el recurso Azure Files es un recurso compartido o un directorio, se requiere el restype parámetro de consulta.

El recurso podría existir o no en el momento en que se realiza la solicitud preparatoria. La solicitud preparatoria se evalúa en el nivel de servicio con respecto a las reglas de CORS del servicio, por lo que la presencia o ausencia del nombre del recurso no afecta al éxito o error de la operación.

Parámetros del identificador URI

Ninguno.

Encabezados de solicitud

En la tabla siguiente se describen los encabezados de solicitud obligatorios y opcionales:

Encabezado de solicitud Descripción
Origin Necesario. Especifica el origen desde el que se emitirá la solicitud. El origen se compara con las reglas de CORS del servicio para determinar el éxito o el error de la solicitud preparatoria.
Access-Control-Request-Method Necesario. Especifica el método (o verbo HTTP) para la solicitud. El método se compara con las reglas de CORS del servicio para determinar el error o el éxito de la solicitud preparatoria.
Access-Control-Request-Headers Opcional. Especifica los encabezados de solicitud que se enviarán. Si no está presente, el servicio asume que la solicitud no incluye encabezados.
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. Para obtener más información, consulte Nomenclatura y referencia a recursos compartidos, directorios, archivos y metadatos.

Cuerpo de la solicitud

Ninguno.

Response

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

status code

Una operación correcta devuelve el código de estado 200 Correcto.

Encabezados de respuesta

La respuesta para esta operación incluye los encabezados 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.

Para obtener más información sobre los encabezados de solicitud preparatoria, consulte la especificación CORS.

Encabezado de respuesta Descripción
Access-Control-Allow-Origin Indica el origen permitido, que coincide con el encabezado de origen de la solicitud si la solicitud preparatoria se realiza correctamente.
Access-Control-Allow-Methods Si la solicitud preparatoria se realiza correctamente, este encabezado se establece en el valor o los valores especificados para el encabezado Access-Control-Request-Methodde solicitud .
Access-Control-Allow-Headers Si la solicitud preparatoria se realiza correctamente, este encabezado se establece en el valor o los valores especificados para el encabezado Access-Control-Request-Headersde solicitud .
Access-Control-Max-Age Especifica el período de tiempo que el agente de usuario puede almacenar en caché la solicitud preparatoria para futuras solicitudes.
Access-Control-Allow-Credentials Indica si la solicitud se puede realizar a través de credenciales. Este encabezado siempre se establece en true.

Response body

Ninguno.

Authorization

La Preflight File Request operación siempre se ejecuta de forma anónima. No requiere autorización y omite las credenciales si se proporcionan.

Nota:

Si ha habilitado Azure Storage Analytics y está registrando métricas, se registra una llamada a la Preflight File Request operación como AnonymousSuccess. Por este motivo, si ve las métricas en el Azure Portal, verá AnonymousSuccess que ha iniciado sesión para Preflight File Request. Esta métrica no indica que los datos privados se han puesto en peligro, pero solo que la Preflight File Request operación se realizó correctamente con un código de estado de 200 (CORRECTO).

Solicitud y respuesta de ejemplo

En el ejemplo siguiente se envía una solicitud preparatoria para el origen www.contoso.com. El método de solicitud se establece PUTen y los encabezados de solicitud se establecen en content-type y accept.

OPTIONS http://myaccount.file.core.windows.net/myshare/myfile  
HTTP/1.1  
Accept: */*  
Origin: www.contoso.com  
Access-Control-Request-Method: PUT  
Access-Control-Request-Headers: content-type, accept  
Accept-Encoding: gzip, deflate  
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)  
Content-Length: 0    

La respuesta indica que CORS está habilitado para el servicio y que una regla de CORS coincide con la solicitud preparatoria:

HTTP/1.1 200 OK  
Connection: Keep-Alive  
Content-Length: 0  
Content-Type: text/html; charset=UTF-8  
Access-Control-Allow-Origin: *  
Access-Control-Max-Age: 60  
Access-Control-Allow-Methods: PUT  
Access-Control-Allow-Headers: accept,content-type

Observaciones

Si CORS está habilitado para el servicio y una regla de CORS coincide con la solicitud preparatoria, el servicio responde a la solicitud preparatoria con el código de estado 200 (CORRECTO). La respuesta incluye los encabezados Access-Control necesarios. En este caso, se factura la solicitud.

Si CORS no se ha habilitado o no hay ninguna regla de CORS que coincida con la solicitud preparatoria, el servicio responde con el código de estado 403 (Forbidden). En este caso, la solicitud no se factura.

Si la OPTIONS solicitud tiene un formato incorrecto, el servicio responde con el código de estado 400 (solicitud incorrecta) y la solicitud no se factura. Un ejemplo de una solicitud con formato incorrecto es una que no contiene los encabezados y Access-Control-Request-Method obligatoriosOrigin.

La solicitud preparatoria es un mecanismo para consultar la funcionalidad CORS de un servicio de almacenamiento asociado a una cuenta de almacenamiento determinada. La solicitud preparatoria no está destinada a un recurso específico.