Operacje systemu plików w usłudze Azure Data Lake Storage Gen1 przy użyciu interfejsu API REST
Z tego artykułu dowiesz się, jak używać interfejsów API REST WebHDFS i interfejsów API REST Data Lake Storage Gen1 do wykonywania operacji systemu plików na Azure Data Lake Storage Gen1. Aby uzyskać instrukcje dotyczące wykonywania operacji zarządzania kontami na Data Lake Storage Gen1 przy użyciu interfejsu API REST, zobacz Operacje zarządzania kontami na Data Lake Storage Gen1 przy użyciu interfejsu API REST.
Wymagania wstępne
Subskrypcja platformy Azure. Zobacz temat Uzyskiwanie bezpłatnej wersji próbnej platformy Azure.
konto usługi Azure Data Lake Storage Gen1. Postępuj zgodnie z instrukcjami w temacie Rozpoczynanie pracy z usługą Azure Data Lake Storage Gen1 przy użyciu Azure Portal.
cURL. W tym artykule użyto narzędzia cURL, aby zademonstrować sposób wykonywania wywołań interfejsu API REST względem konta Data Lake Storage Gen1.
Jak mogę uwierzytelnić się przy użyciu Tożsamość Microsoft Entra?
Możesz użyć dwóch metod uwierzytelniania przy użyciu Tożsamość Microsoft Entra.
- Aby uzyskać informacje na temat uwierzytelniania użytkowników końcowych dla aplikacji (interakcyjnej), zobacz Uwierzytelnianie użytkowników końcowych przy użyciu Data Lake Storage Gen1 przy użyciu zestawu .NET SDK.
- Aby uzyskać informacje na temat uwierzytelniania typu usługa dla aplikacji (nieinterakcyjne), zobacz Service-to-service authentication with Data Lake Storage Gen1 using .NET SDK (Uwierzytelnianie typu usługa-usługa przy użyciu zestawu SDK platformy .NET).
Tworzenie folderów
Ta operacja jest oparta na wywołaniu interfejsu API REST WebHDFS zdefiniowanym tutaj.
Użyj następującego polecenia cURL. Zastąp <ciąg yourstorename> nazwą konta Data Lake Storage Gen1.
curl -i -X PUT -H "Authorization: Bearer <REDACTED>" -d "" 'https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/?op=MKDIRS'
W poprzednim poleceniu zastąp ciąg <REDACTED
> tokenem autoryzacji pobranym wcześniej. To polecenie tworzy katalog o nazwie mytempdir w folderze głównym konta Data Lake Storage Gen1.
Jeśli operacja zakończy się pomyślnie, powinna pojawić się odpowiedź podobna do poniższego fragmentu kodu:
{"boolean":true}
Wyświetlanie listy folderów
Ta operacja jest oparta na wywołaniu interfejsu API REST WebHDFS zdefiniowanym tutaj.
Użyj następującego polecenia cURL. Zastąp <ciąg yourstorename> nazwą konta Data Lake Storage Gen1.
curl -i -X GET -H "Authorization: Bearer <REDACTED>" 'https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/?op=LISTSTATUS'
W poprzednim poleceniu zastąp ciąg <REDACTED
> tokenem autoryzacji pobranym wcześniej.
Jeśli operacja zakończy się pomyślnie, powinna pojawić się odpowiedź podobna do poniższego fragmentu kodu:
{
"FileStatuses": {
"FileStatus": [{
"length": 0,
"pathSuffix": "mytempdir",
"type": "DIRECTORY",
"blockSize": 268435456,
"accessTime": 1458324719512,
"modificationTime": 1458324719512,
"replication": 0,
"permission": "777",
"owner": "<GUID>",
"group": "<GUID>"
}]
}
}
Przekazywanie danych
Ta operacja jest oparta na wywołaniu interfejsu API REST WebHDFS zdefiniowanym tutaj.
Użyj następującego polecenia cURL. Zastąp <ciąg yourstorename> nazwą konta 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'
W poprzedniej składni parametr -T wskazuje na lokalizację przekazywanego pliku.
Dane wyjściowe będą podobne do następującego fragmentu kodu:
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
...
Odczyt danych
Ta operacja jest oparta na wywołaniu interfejsu API REST WebHDFS zdefiniowanym tutaj.
Odczytywanie danych z konta Data Lake Storage Gen1 jest procesem dwuetapowym.
- Najpierw prześlij żądanie GET względem punktu końcowego
https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile.txt?op=OPEN
. To wywołanie zwraca lokalizację, do której należy przesłać kolejne żądanie GET. - Następnie prześlij żądanie GET względem punktu końcowego
https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile.txt?op=OPEN&read=true
. To wywołanie powoduje wyświetlenie zawartości pliku.
Jednak ponieważ nie ma żadnej różnicy w parametrach wejściowych kroku pierwszego i drugiego, możesz użyć parametru -L
w celu przesłania pierwszego żądania.
-L
— ta opcja w praktyce łączy dwa żądania w jedno i powoduje, że narzędzie cURL ponawia żądanie dla nowej lokalizacji. Na koniec zostaną wyświetlone dane wyjściowe z wszystkich wywołań żądań, tak jak pokazano w poniższym fragmencie kodu. Zastąp <ciąg yourstorename> nazwą konta Data Lake Storage Gen1.
curl -i -L GET -H "Authorization: Bearer <REDACTED>" 'https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile.txt?op=OPEN'
Powinny pojawić się dane wyjściowe podobne do następującego fragmentu kodu:
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!
Zmienianie nazwy pliku
Ta operacja jest oparta na wywołaniu interfejsu API REST WebHDFS zdefiniowanym tutaj.
Użyj następującego polecenia cURL, aby zmienić nazwę pliku. Zastąp <ciąg yourstorename> nazwą konta 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'
Powinny pojawić się dane wyjściowe podobne do następującego fragmentu kodu:
HTTP/1.1 200 OK
...
{"boolean":true}
Usuwanie pliku
Ta operacja jest oparta na wywołaniu interfejsu API REST WebHDFS zdefiniowanym tutaj.
Użyj następującego polecenia cURL, aby usunąć plik. Zastąp <ciąg yourstorename> nazwą konta Data Lake Storage Gen1.
curl -i -X DELETE -H "Authorization: Bearer <REDACTED>" 'https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile1.txt?op=DELETE'
Powinny pojawić się dane wyjściowe podobne do następujących:
HTTP/1.1 200 OK
...
{"boolean":true}