使用 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 上 帳戶管理作業。
先決條件
Azure 訂用帳戶。 請參閱取得 Azure 免費試用。
Azure Data Lake Storage Gen1 帳戶。 請依照 的指示,使用 Azure 入口網站來開始使用 Azure Data Lake Storage Gen1。
cURL。 此文章使用 cURL 示範如何對 Data Lake Storage Gen1 進行 REST API 呼叫。
如何使用 Microsoft Entra ID 進行驗證?
您可以使用兩種方法來使用 Microsoft Entra ID 進行驗證。
- 如需有關讓應用程式進行使用者驗證 (互動式) 的詳細資訊,請參閱使用 .NET SDK 向 Data Lake Storage Gen1 進行使用者驗證。
- 如需有關讓應用程式進行服務對服務驗證 (非互動式) 的詳細資訊,請參閱使用 .NET SDK 向 Data Lake Storage Gen1 進行服務對服務驗證。
建立資料夾
此作業是以這裡定義的 WebHDFS REST API 呼叫為基礎 ,。
使用下列 cURL 命令。 以 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 命令。 以 Data Lake Storage Gen1 帳戶名稱取代 <您的storename>。
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 帳戶名稱取代 <您的存儲名稱>。
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 要求的位置。 - 接著,您會針對端點提交 GET 請求,
https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile.txt?op=OPEN&read=true
。 此呼叫會顯示檔案的內容。
不過,由於第一個步驟和第二個步驟之間的輸入參數沒有任何差異,因此您可以使用 -L
參數來提交第一個要求。
-L
選項基本上會將兩個要求合併成一個,並讓 cURL 在新的位置上重做要求。 最後,會顯示所有請求呼叫的輸出,如下列程式碼片段所示。 以 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 命令來重新命名檔案。 以 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 命令來刪除檔案。 以 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}