Поделиться через


Операции файловой системы в Azure Data Lake Storage 1-го поколения с использованием REST API

В этой статье содержатся сведения об использовании интерфейсов REST API WebHDFS и REST API Data Lake Storage 1-го поколения для выполнения операций файловой системы в Azure Data Lake Storage 1-го поколения. Дополнительные сведения о том, как выполнять операции управления учетными записями в Data Lake Storage 1-го поколения с помощью REST API, см. в этой статье.

Предварительные требования

Разделы справки пройти проверку подлинности с помощью Microsoft Entra ID?

Для проверки подлинности с помощью Microsoft Entra ID можно использовать два подхода.

Создайте папки:

Эта операция основана на вызове REST API WebHDFS, определенном здесь.

Используйте следующую команду cURL: Замените <yourstorename> именем учетной записи Data Lake Storage 1-го поколения.

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

В приведенной выше команде замените <REDACTED> полученным ранее маркером авторизации. Эта команда создает каталог с именем mytempdir в корневой папке учетной записи Data Lake Storage 1-го поколения.

Если работа приложения завершится успешно, отобразится результат, подобный приведенному ниже фрагменту кода:

{"boolean":true}

Вывод списка папок

Эта операция основана на вызове REST API WebHDFS, определенном здесь.

Используйте следующую команду cURL: Замените <yourstorename> именем учетной записи Data Lake Storage 1-го поколения.

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

В приведенной выше команде замените <REDACTED> полученным ранее маркером авторизации.

Если работа приложения завершится успешно, отобразится результат, подобный приведенному ниже фрагменту кода:

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

Отправка данных

Эта операция основана на вызове REST API WebHDFS, определенном здесь.

Используйте следующую команду cURL: Замените <yourstorename> именем учетной записи Data Lake Storage 1-го поколения.

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'

В предыдущем синтаксисе параметр -T представляет расположение отправляемого файла.

Вывод аналогичен приведенному ниже фрагменту кода:

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

Чтение данных

Эта операция основана на вызове REST API WebHDFS, определенном здесь.

Процесс чтения данных из учетной записи Data Lake Storage 1-го поколения состоит из двух этапов.

  • Сначала следует отправить запрос GET к конечной точке https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile.txt?op=OPEN. Будет возвращено расположение для отправки следующего запроса GET.
  • Затем нужно отправить запрос GET к конечной точке https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile.txt?op=OPEN&read=true. Будет отображено содержимое файла.

Однако поскольку на первом и втором этапе применяются одинаковые входные параметры, для отправки первого запроса можно использовать параметр -L. -L фактически объединяет два запроса в один, а также позволяет cURL повторно отправить запрос к новому расположению. И наконец, отображаются выходные данные всех вызовов запросов, как показано в следующем фрагменте кода. Замените <yourstorename> именем учетной записи Data Lake Storage 1-го поколения.

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

Должен отобразиться результат, аналогичный приведенному ниже фрагменту кода.

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!

Переименуйте файл

Эта операция основана на вызове REST API WebHDFS, определенном здесь.

Чтобы переименовать файл, используйте следующую команду cURL: Замените <yourstorename> именем учетной записи Data Lake Storage 1-го поколения.

curl -i -X PUT -H "Authorization: Bearer <REDACTED>" -d "" 'https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile.txt?op=RENAME&destination=/mytempdir/myinputfile1.txt'

Должен отобразиться результат, аналогичный приведенному ниже фрагменту кода.

HTTP/1.1 200 OK
...

{"boolean":true}

Удаление файла

Эта операция основана на вызове REST API WebHDFS, определенном здесь.

Чтобы удалить файл, используйте следующую команду cURL: Замените <yourstorename> именем учетной записи Data Lake Storage 1-го поколения.

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

Вы должны увидеть подобные выходные данные:

HTTP/1.1 200 OK
...

{"boolean":true}

Дальнейшие действия

См. также раздел