Операции файловой системы в 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, см. в этой статье.
Предварительные требования
Подписка Azure. См. страницу бесплатной пробной версии Azure.
Учетная запись Azure Data Lake Storage 1-го поколения. Следуйте инструкциям из статьи Начало работы с Azure Data Lake Storage Gen1 с помощью портала Azure.
cURL . В этой статье для демонстрации вызовов REST API к учетной записи Data Lake Storage 1-го поколения используется cURL.
Разделы справки пройти проверку подлинности с помощью Microsoft Entra ID?
Для проверки подлинности с помощью Microsoft Entra ID можно использовать два подхода.
- Дополнительные сведения о проверке подлинности пользователей в приложении (интерактивная проверка подлинности) см. в статье Аутентификация пользователей в Data Lake Store с помощью REST API.
- Дополнительные сведения о проверке подлинности между службами в приложении (неинтерактивная проверка подлинности) см. в статье Аутентификация между службами в Data Lake Store с помощью REST API.
Создайте папки:
Эта операция основана на вызове 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}