Operazioni del file system in Azure Data Lake Storage Gen1 usando l'API REST

In questo articolo, viene descritto come usare le API REST WebHDFS e le API REST di Data Lake Storage Gen1 per eseguire operazioni del file system in Azure Data Lake Storage Gen1. Per istruzioni su come eseguire operazioni di gestione account in Data Lake Storage Gen1 usando l'API REST, consultare Operazioni di gestione dell'account su Data Lake Storage Gen1 usando l'API REST.

Prerequisiti

Ricerca per categorie eseguire l'autenticazione con Microsoft Entra ID?

È possibile usare due approcci per eseguire l'autenticazione usando Microsoft Entra ID.

Creare cartelle

Questa operazione si basa sulla chiamata API REST WebHDFS definita qui.

Usare il comando cURL seguente. Sostituire <yourstorename> con il nome dell'account Data Lake Storage Gen1.

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

Nel comando precedente sostituire <REDACTED> con il token di autorizzazione recuperato in precedenza. Questo comando crea una directory denominata mytempdir sotto la cartella radice dell'account Data Lake Storage Gen1.

Se l'operazione viene completata correttamente, verrà visualizzata una risposta simile al frammento di codice seguente:

{"boolean":true}

Elencare le cartelle

Questa operazione si basa sulla chiamata API REST WebHDFS definita qui.

Usare il comando cURL seguente. Sostituire <yourstorename> con il nome dell'account Data Lake Storage Gen1.

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

Nel comando precedente sostituire <REDACTED> con il token di autorizzazione recuperato in precedenza.

Se l'operazione viene completata correttamente, verrà visualizzata una risposta simile al frammento di codice seguente:

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

Caricare i dati

Questa operazione si basa sulla chiamata API REST WebHDFS definita qui.

Usare il comando cURL seguente. Sostituire <yourstorename> con il nome dell'account 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'

Nella sintassi precedente il parametro -T indica la posizione del file che si sta caricando.

L'output è simile al frammento di codice seguente:

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
...

Leggere i dati

Questa operazione si basa sulla chiamata API REST WebHDFS definita qui.

La lettura dei dati di un account Data Lake Storage Gen1 è un processo in due passaggi.

  • È prima necessario inviare una richiesta GET all'endpoint https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile.txt?op=OPEN. Questa chiamata restituisce un percorso a cui inviare la richiesta GET successiva.
  • È quindi necessario inviare la richiesta GET all'endpoint https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile.txt?op=OPEN&read=true. La chiamata visualizza i contenuti del file.

Tuttavia, dal momento che non esiste alcuna differenza nei parametri di input tra il primo e il secondo passaggio, è possibile usare il parametro -L per inviare la prima richiesta. L'opzione -L combina essenzialmente due richieste in una e fa ripetere a cURL la richiesta nel nuovo percorso. Infine, viene visualizzato l'output di tutte le chiamate di richiesta, come illustrato nel frammento di codice seguente. Sostituire <yourstorename> con il nome dell'account Data Lake Storage Gen1.

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

L'output visualizzato dovrebbe essere simile al frammento di codice seguente:

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!

Rinomina un file

Questa operazione si basa sulla chiamata API REST WebHDFS definita qui.

Per rinominare un file, usare il comando cURL seguente: Sostituire <yourstorename> con il nome dell'account 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'

L'output visualizzato dovrebbe essere simile al frammento di codice seguente:

HTTP/1.1 200 OK
...

{"boolean":true}

Eliminare un file

Questa operazione si basa sulla chiamata API REST WebHDFS definita qui.

Utilizzare il comando cURL seguente per eliminare un file. Sostituire <yourstorename> con il nome dell'account Data Lake Storage Gen1.

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

Verrà visualizzato un output simile al seguente:

HTTP/1.1 200 OK
...

{"boolean":true}

Passaggi successivi

Vedi anche