共用方式為


使用 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 帳戶名稱取代 <您的商店名稱>

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}

後續步驟

  • 使用 REST API Data Lake Storage Gen1 上的帳戶管理作業。

另請參閱