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
Uma subscrição do Azure. Consulte Obter versão de avaliação gratuita do Azure.
Azure Data Lake Storage conta Gen1. Siga as instruções em Introdução ao Azure Data Lake Storage Gen1 com o portal do Azure.
cURL. Este artigo utiliza o cURL para demonstrar como fazer chamadas à API REST numa conta Data Lake Storage Gen1.
Como devo proceder para autenticar com Microsoft Entra ID?
Pode utilizar duas abordagens para autenticar com Microsoft Entra ID.
- Para autenticação de utilizador final para a sua aplicação (interativa), veja Autenticação de utilizador final com Data Lake Storage Gen1 através do SDK .NET.
- Para autenticação serviço a serviço para a sua aplicação (não interativa), veja Autenticação serviço a serviço com Data Lake Storage Gen1 através do SDK .NET.
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}