Operaciones del sistema de archivos en Azure Data Lake Storage Gen1 mediante el uso de la API de REST

En este artículo aprenderá a usar las API de REST WebHDFS y las API de REST de Data Lake Storage Gen1 para realizar operaciones del sistema de archivos en Azure Data Lake Storage Gen1. Para instrucciones sobre cómo realizar operaciones de administración de cuentas en Data Lake Storage Gen1 con la API de REST, consulte Operaciones de administración de cuentas en Data Lake Storage Gen1 con la API de REST.

Requisitos previos

Cómo autenticar mediante Microsoft Entra ID?

Puede usar dos enfoques para autenticarse mediante Microsoft Entra ID.

Crear carpetas

Esta operación se basa en la llamada de la API de REST de WebHDFS que se define aquí.

Use el siguiente comando cURL. Reemplace <nombre_del_almacén> por el nombre de cuenta de Data Lake Storage Gen1.

curl -i -X PUT -H "Authorization: Bearer <REDACTED>" -d "" 'https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/?op=MKDIRS'

En el comando anterior, reemplace <REDACTED> por el token de autorización que recuperó anteriormente. Este comando crea un directorio denominado mytempdir bajo la carpeta raíz de su cuenta de Data Lake Storage Gen1.

Si la operación se completa correctamente, verá una respuesta similar al fragmento de código siguiente:

{"boolean":true}

Lista de carpetas

Esta operación se basa en la llamada de la API de REST de WebHDFS que se define aquí.

Use el siguiente comando cURL. Reemplace <nombre_del_almacén> por el nombre de cuenta de Data Lake Storage Gen1.

curl -i -X GET -H "Authorization: Bearer <REDACTED>" 'https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/?op=LISTSTATUS'

En el comando anterior, reemplace <REDACTED> por el token de autorización que recuperó anteriormente.

Si la operación se completa correctamente, verá una respuesta similar al fragmento de código siguiente:

{
"FileStatuses": {
    "FileStatus": [{
        "length": 0,
        "pathSuffix": "mytempdir",
        "type": "DIRECTORY",
        "blockSize": 268435456,
        "accessTime": 1458324719512,
        "modificationTime": 1458324719512,
        "replication": 0,
        "permission": "777",
        "owner": "<GUID>",
        "group": "<GUID>"
    }]
}
}

Carga de datos

Esta operación se basa en la llamada de la API de REST de WebHDFS que se define aquí.

Use el siguiente comando cURL. Reemplace <nombre_del_almacén> por el nombre de cuenta de Data Lake Storage Gen1.

curl -i -X PUT -L -T 'C:\temp\list.txt' -H "Authorization: Bearer <REDACTED>" 'https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/list.txt?op=CREATE'

En la sintaxis anterior, el parámetro -T es la ubicación del archivo que se va a cargar.

La salida será similar al fragmento de código siguiente:

HTTP/1.1 307 Temporary Redirect
...
Location: https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/list.txt?op=CREATE&write=true
...
Content-Length: 0

HTTP/1.1 100 Continue

HTTP/1.1 201 Created
...

Lectura de datos

Esta operación se basa en la llamada de la API de REST de WebHDFS que se define aquí.

La lectura de datos desde una cuenta de Data Lake Storage Gen1 es un proceso de dos pasos.

  • Primero, envíe una solicitud GET en el punto de conexión https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile.txt?op=OPEN. Esta llamada devolverá una ubicación a la que se debe enviar la siguiente solicitud GET.
  • Después, envíe la solicitud GET en el punto de conexión https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile.txt?op=OPEN&read=true. Esta llamada muestra el contenido del archivo.

Sin embargo, como no existe ninguna diferencia en los parámetros de entrada entre el primer y el segundo paso, puede usar el parámetro -L para enviar la primera solicitud. La opción -L combina dos solicitudes en una y hace que cURL vuelva a realizar la solicitud en la nueva ubicación. Por último, se muestra la salida de todas las llamadas de solicitud, como se muestra en el fragmento de código siguiente. Reemplace <nombre_del_almacén> por el nombre de cuenta de Data Lake Storage Gen1.

curl -i -L GET -H "Authorization: Bearer <REDACTED>" 'https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile.txt?op=OPEN'

Debería ver una salida similar al siguiente fragmento de código:

HTTP/1.1 307 Temporary Redirect
...
Location: https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/somerandomfile.txt?op=OPEN&read=true
...

HTTP/1.1 200 OK
...

Hello, Data Lake Store user!

Cambio del nombre de un archivo

Esta operación se basa en la llamada de la API de REST de WebHDFS que se define aquí.

Para cambiar el nombre de un archivo, use el siguiente comando cURL. Reemplace <nombre_del_almacén> por el nombre de cuenta de Data Lake Storage Gen1.

curl -i -X PUT -H "Authorization: Bearer <REDACTED>" -d "" 'https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile.txt?op=RENAME&destination=/mytempdir/myinputfile1.txt'

Debería ver una salida similar al siguiente fragmento de código:

HTTP/1.1 200 OK
...

{"boolean":true}

Eliminación de un archivo

Esta operación se basa en la llamada de la API de REST de WebHDFS que se define aquí.

Para eliminar un archivo, use el siguiente comando cURL. Reemplace <nombre_del_almacén> por el nombre de cuenta de Data Lake Storage Gen1.

curl -i -X DELETE -H "Authorization: Bearer <REDACTED>" 'https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile1.txt?op=DELETE'

Debe ver algo parecido a lo siguiente:

HTTP/1.1 200 OK
...

{"boolean":true}

Pasos siguientes

Consulte también