Operazioni del file system in Azure Data Lake Storage Gen1 con l'API REST
Questo articolo illustra come usare le API REST WebHDFS e le API REST di Data Lake Storage Gen1 per eseguire operazioni di file system in Azure Data Lake Storage Gen1. Per istruzioni su come eseguire operazioni di gestione degli account in Data Lake Storage Gen1 usando l'API REST, vedere operazioni di gestione degli account in Data Lake Storage Gen1 usando l'API REST.
Prerequisiti
Un abbonamento di Azure. Vedere Ottenere una versione di prova gratuita di Azure.
account di Azure Data Lake Storage Gen1. Seguire le istruzioni riportate in Introduzione ad Azure Data Lake Storage Gen1 usando il portale di Azure.
cURL. In questo articolo viene usato cURL per illustrare come effettuare chiamate API REST con un account Data Lake Storage Gen1.
Come posso autenticarmi utilizzando Microsoft Entra ID?
È possibile usare due approcci per eseguire l'autenticazione usando Microsoft Entra ID.
- Per l'autenticazione dell'utente finale per l'applicazione (interattiva), consultare Autenticazione dell'utente finale con Data Lake Storage Gen1 tramite .NET SDK.
- Per l'autenticazione da servizio a servizio per l'applicazione (non interattiva), vedere Autenticazione da servizio a servizio con Data Lake Storage Gen1 tramite .NET SDK.
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 nella 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 <nomestore> 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>"
}]
}
}
Carica dati
Questa operazione si basa sulla chiamata API REST WebHDFS definita qui.
Usare il comando cURL seguente. Sostituire <il nome del tuo store> 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 parametro -T è il percorso 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 dati
Questa operazione si basa sulla chiamata API REST WebHDFS definita qui.
La lettura dei dati da 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. - Si invia quindi la richiesta GET all'endpoint
https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile.txt?op=OPEN&read=true
. Questa chiamata visualizza il contenuto del file.
Tuttavia, poiché 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 combina essenzialmente due richieste in una e fa sì che cURL ripeta la richiesta nel nuovo percorso. Viene infine visualizzato l'output di tutte le chiamate di richiesta, come illustrato nel frammento di codice seguente. Sostituire <il nome del tuo store> 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'
Verrà visualizzato un output 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!
Rinominare un file
Questa operazione si basa sulla chiamata API REST WebHDFS definita qui.
Usare il comando cURL seguente per rinominare un file. Sostituire <nomestore> 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'
Verrà visualizzato un output 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.
Usare il comando cURL seguente per eliminare un file. Sostituisci <nome_del_tuo_store> 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}