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
Una sottoscrizione di Azure. Vedere Ottenere una versione di prova gratuita di Azure.
Account Azure Data Lake Storage Gen1. Seguire le istruzioni fornite in Introduzione ad Azure Data Lake Storage Gen1 con 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.
Ricerca per categorie eseguire l'autenticazione con 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 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}