Operações do sistema de ficheiros no Azure Data Lake Storage Gen1 com a API REST

Neste artigo, vai aprender a utilizar as APIs REST webHDFS e Data Lake Storage Gen1 APIs REST para realizar operações de sistema de ficheiros no Azure Data Lake Storage Gen1. Para obter instruções sobre como realizar operações de gestão de contas em Data Lake Storage Gen1 com a API REST, veja Operações de gestão de contas no Data Lake Storage Gen1 com a API REST.

Pré-requisitos

Como devo proceder para autenticar com Microsoft Entra ID?

Pode utilizar duas abordagens para autenticar com Microsoft Entra ID.

Criar pastas

Esta operação baseia-se na chamada da API REST WebHDFS definida aqui.

Utilize o seguinte comando cURL. Substitua <yourstorename> pelo nome da sua conta Data Lake Storage Gen1.

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

No comando anterior, substitua <REDACTED> pelo token de autorização obtido anteriormente. Este comando cria um diretório denominado mytempdir na pasta raiz da sua conta Data Lake Storage Gen1.

Se a operação for concluída com êxito, deverá ver uma resposta como o seguinte fragmento:

{"boolean":true}

Listar pastas

Esta operação baseia-se na chamada da API REST WebHDFS definida aqui.

Utilize o seguinte comando cURL. Substitua <yourstorename> pelo nome da sua conta Data Lake Storage Gen1.

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

No comando anterior, substitua <REDACTED> pelo token de autorização obtido anteriormente.

Se a operação for concluída com êxito, deverá ver uma resposta como o seguinte fragmento:

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

Carregar dados

Esta operação baseia-se na chamada da API REST WebHDFS definida aqui.

Utilize o seguinte comando cURL. Substitua <yourstorename> pelo nome da sua conta 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'

No parâmetro da sintaxe anterior -T encontra-se a localização do ficheiro que está a carregar.

O resultado é semelhante ao seguinte fragmento:

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

Ler dados

Esta operação baseia-se na chamada da API REST WebHDFS definida aqui.

Ler dados de uma conta Data Lake Storage Gen1 é um processo de dois passos.

  • Primeiro, submeta um pedido GET relativamente ao ponto final https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile.txt?op=OPEN. Esta chamada devolve uma localização para submeter o pedido GET seguinte.
  • Em seguida, submeta o pedido GET relativamente ao ponto final https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile.txt?op=OPEN&read=true. Esta chamada apresenta o conteúdo do ficheiro.

No entanto, uma vez que não existe nenhuma diferença nos parâmetros de entrada entre o primeiro e o segundo passo, pode utilizar o parâmetro -L para submeter o primeiro pedido. A opção -L combina essencialmente dois pedidos num único e faz com que o cURL refaça o pedido na nova localização. Por fim, é apresentado o resultado de todas as chamadas do pedido, como mostrado no fragmento seguinte. Substitua <yourstorename> pelo nome da sua conta Data Lake Storage Gen1.

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

Deverá ver um resultado semelhante ao seguinte fragmento:

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!

Mudar o nome de um ficheiro

Esta operação baseia-se na chamada da API REST WebHDFS definida aqui.

Utilize o seguinte comando cURL para mudar o nome de um ficheiro. Substitua <yourstorename> pelo nome da sua conta 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'

Deverá ver um resultado semelhante ao seguinte fragmento:

HTTP/1.1 200 OK
...

{"boolean":true}

Eliminar um ficheiro

Esta operação baseia-se na chamada da API REST WebHDFS definida aqui.

Utilize o seguinte comando cURL para eliminar um ficheiro. Substitua <yourstorename> pelo nome da sua conta Data Lake Storage Gen1.

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

Deve ver um resultado como o seguinte:

HTTP/1.1 200 OK
...

{"boolean":true}

Passos seguintes

Ver também