共用方式為


使用 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 命令。 以您的 Data Lake Storage Gen1 帳戶名稱取代 <yourstorename>

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 命令。 以您的 Data Lake Storage Gen1 帳戶名稱取代 <yourstorename>

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 命令。 以您的 Data Lake Storage Gen1 帳戶名稱取代 <yourstorename>

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 帳戶讀取資料是兩個步驟的程序。

  • 您要先針對端點 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 在新的位置重做要求。 最後會顯示所有要求呼叫的輸出,如下列程式碼片段所示。 以您的 Data Lake Storage Gen1 帳戶名稱取代 <yourstorename>

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 命令重新命名檔案。 以您的 Data Lake Storage Gen1 帳戶名稱取代 <yourstorename>

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 命令刪除檔案。 以您的 Data Lake Storage Gen1 帳戶名稱取代 <yourstorename>

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}

下一步

另請參閱