Compartilhar via


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

Como fazer autenticar usando Microsoft Entra ID?

Você pode usar duas abordagens para autenticar usando Microsoft Entra ID.

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}

Próximas etapas

Confira também