Operações de sistema de arquivos no Azure Data Lake Storage Gen1 usando a API REST
Neste artigo, você aprende a usar as APIs REST WebHDFS e as APIs REST do Data Lake Storage Gen1 para executar operações de filesystem no Azure Data Lake Storage Gen1. Para obter instruções sobre como executar operações de gerenciamento de conta no Data Lake Storage Gen1 usando a API REST, veja Operações de gerenciamento de conta no Data Lake Storage Gen1 usando a API REST.
Pré-requisitos
Uma assinatura do Azure. Consulte Obter a avaliação gratuita do Azure.
Conta do Azure Data Lake Storage Gen1. Siga as instruções em Introdução ao Azure Data Lake Storage Gen1 usando o portal do Azure.
cURL . Este artigo usa cURL para demonstrar como fazer chamadas à API REST em uma conta do Data Lake Storage Gen1.
Como fazer autenticar usando Microsoft Entra ID?
Você pode usar duas abordagens para autenticar usando Microsoft Entra ID.
- Para a autenticação do usuário final para o seu aplicativo (interativo), veja Autenticação do usuário final com o Data Lake Storage Gen1 usando o SDK do .NET.
- Para autenticação de serviço a serviço para seu aplicativo (não interativo), confira Autenticação de serviço a serviço com o Data Lake Storage Gen1 usando o SDK do .NET.
Criar pastas
Essa operação se baseia na chamada à API REST WebHDFS definida aqui.
Use o comando cURL a seguir. Substitua <yourstorename> pelo nome da sua conta do 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 recuperado anteriormente. Esse comando cria um diretório chamado mytempdir na pasta raiz da conta do Data Lake Storage Gen1.
Se a operação for concluída com êxito, você deverá ver uma resposta como o seguinte snippet:
{"boolean":true}
Listar pastas
Essa operação se baseia na chamada à API REST WebHDFS definida aqui.
Use o comando cURL a seguir. Substitua <yourstorename> pelo nome da sua conta do 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 recuperado anteriormente.
Se a operação for concluída com êxito, você deverá ver uma resposta como o seguinte snippet:
{
"FileStatuses": {
"FileStatus": [{
"length": 0,
"pathSuffix": "mytempdir",
"type": "DIRECTORY",
"blockSize": 268435456,
"accessTime": 1458324719512,
"modificationTime": 1458324719512,
"replication": 0,
"permission": "777",
"owner": "<GUID>",
"group": "<GUID>"
}]
}
}
Carregar dados
Essa operação se baseia na chamada à API REST WebHDFS definida aqui.
Use o comando cURL a seguir. Substitua <yourstorename> pelo nome da sua conta do 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'
Na sintaxe anterior, o parâmetro -T é o local do arquivo que você está carregando.
A saída deverá ser semelhante ao seguinte snippet:
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
Essa operação se baseia na chamada à API REST WebHDFS definida aqui.
A leitura de dados de uma conta do Data Lake Storage Gen1 é um processo de duas etapas.
- Primeiro você envia uma solicitação GET para o ponto de extremidade
https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile.txt?op=OPEN
. Isso retorna um local para o qual será enviada a próxima solicitação GET. - Em seguida, você enviará a solicitação GET para o ponto de extremidade
https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile.txt?op=OPEN&read=true
. Essa chamada exibe o conteúdo do arquivo.
No entanto, como não há diferença nos parâmetros de entrada entre a primeira e a segunda etapa, é possível usar o parâmetro -L
para enviar a primeira solicitação. A opção -L
combina duas solicitações em uma e faz com que a cURL refaça a solicitação no novo local. Por fim, a saída de todas as chamadas de solicitação é exibida, conforme mostra o snippet abaixo. Substitua <yourstorename> pelo nome da sua conta do Data Lake Storage Gen1.
curl -i -L GET -H "Authorization: Bearer <REDACTED>" 'https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile.txt?op=OPEN'
Você deverá ver uma saída semelhante ao seguinte snippet:
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!
Renomear um arquivo
Essa operação se baseia na chamada à API REST WebHDFS definida aqui.
Use o comando cURL a seguir para renomear um arquivo. Substitua <yourstorename> pelo nome da sua conta do 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'
Você deverá ver uma saída semelhante ao seguinte snippet:
HTTP/1.1 200 OK
...
{"boolean":true}
Excluir um arquivo
Essa operação se baseia na chamada à API REST WebHDFS definida aqui.
Use o comando cURL a seguir para excluir um arquivo. Substitua <yourstorename> pelo nome da sua conta do Data Lake Storage Gen1.
curl -i -X DELETE -H "Authorization: Bearer <REDACTED>" 'https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile1.txt?op=DELETE'
Você verá algo semelhante ao mostrado a seguir:
HTTP/1.1 200 OK
...
{"boolean":true}