REST API를 사용한 Azure Data Lake Storage Gen1에서의 파일 시스템 작업

이 문서에서는 WebHDFS REST API 및 Data Lake Storage Gen1 REST API를 사용하여 Azure Data Lake Storage Gen1에서 파일 시스템 작업을 수행하는 방법을 알아봅니다. REST API를 사용하여 Data Lake Storage Gen1에서 계정 관리 작업을 수행하는 방법에 대한 지침은 REST API를 사용한 Data Lake Storage Gen1에서의 계정 관리 작업을 참조하세요.

필수 구성 요소

Microsoft Entra ID 사용하여 인증할 어떻게 할까요? 있나요?

두 가지 방법을 사용하여 Microsoft Entra ID 사용하여 인증할 수 있습니다.

폴더 만들기

이 작업은 여기에 정의된 WebHDFS REST API 호출을 기반으로 합니다.

다음 cURL 명령을 사용합니다. <yourstorename>을 Data Lake Storage Gen1 계정 이름으로 바꿉니다.

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

이전 명령에서 <REDACTED>를 이전에 검색한 권한 부여 토큰으로 바꿉니다. 이 명령은 Data Lake Storage Gen1 계정의 루트 폴더에 mytempdir이라는 디렉터리를 만듭니다.

작업이 성공적으로 완료되면 다음 코드 조각과 같은 응답이 표시됩니다.

{"boolean":true}

폴더 나열

이 작업은 여기에 정의된 WebHDFS REST API 호출을 기반으로 합니다.

다음 cURL 명령을 사용합니다. <yourstorename>을 Data Lake Storage Gen1 계정 이름으로 바꿉니다.

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>"
    }]
}
}

데이터 업로드

이 작업은 여기에 정의된 WebHDFS REST API 호출을 기반으로 합니다.

다음 cURL 명령을 사용합니다. <yourstorename>을 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'

이전 구문에서 -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
...

데이터 읽기

이 작업은 여기에 정의된 WebHDFS REST API 호출을 기반으로 합니다.

Data Lake Storage Gen1 계정에서 데이터를 읽는 작업은 2단계 프로세스입니다.

  • 먼저 엔드포인트 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에 대해 GET 요청을 제출합니다. 이 호출은 파일 콘텐츠를 표시합니다.

그러나 첫 번째 단계와 두 번째 단계 간에 입력 매개 변수의 차이가 없으므로 -L 매개 변수를 사용하여 첫 번째 요청을 제출할 수 있습니다. -L 옵션은 기본적으로 두 요청을 하나로 결합하며 cURL이 새 위치에서 요청을 다시 실행하도록 만듭니다. 마지막으로, 모든 요청 호출의 출력이 다음 코드 조각에 나온 것처럼 표시됩니다. <yourstorename>을 Data Lake Storage Gen1 계정 이름으로 바꿉니다.

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!

파일 이름 바꾸기

이 작업은 여기에 정의된 WebHDFS REST API 호출을 기반으로 합니다.

파일의 이름을 바꾸려면 다음 cURL 명령을 사용합니다. <yourstorename>을 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'

다음 코드 조각과 유사한 결과가 표시됩니다.

HTTP/1.1 200 OK
...

{"boolean":true}

파일 삭제

이 작업은 여기에 정의된 WebHDFS REST API 호출을 기반으로 합니다.

파일을 삭제하려면 다음 cURL 명령을 사용합니다. <yourstorename>을 Data Lake Storage Gen1 계정 이름으로 바꿉니다.

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}

다음 단계

참고 항목