Condividi tramite


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

Come posso autenticarmi utilizzando 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 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}

Passaggi successivi

Vedere anche