DBFS API 2.0
重要的
這篇文章的內容已經退休,可能不會被更新。看到DBFS磚的REST API參考。
DBFS API是一個磚API,使得它的簡單與不同的數據源進行交互,而無需每次讀取一個文件包含您的憑據。看到磚文件係統(DBFS)是什麼?為更多的信息。對於一個易於使用的命令行客戶端DBFS API,明白了磚CLI。
請注意
以確保高質量的服務負載較重的情況下,磚現在執行API DBFS API調用的速度限製。每個工作區,以確保公平用法限製集和高可用性。自動重試可以使用磚CLI 0.12.0及以上版本。我們建議所有客戶切換到磚CLbeplay体育app下载地址I的最新版本。
重要的
訪問數據磚REST api,你必須進行身份驗證。
添加塊
端點 |
HTTP方法 |
---|---|
|
|
附加一塊數據流輸入指定的句柄。如果處理不存在,這個調用將拋出一個異常RESOURCE_DOES_NOT_EXIST
。如果數據塊超過1 MB,這叫會拋出一個異常MAX_BLOCK_SIZE_EXCEEDED
。文件上傳的典型工作流程是:
關閉
端點 |
HTTP方法 |
---|---|
|
|
關閉指定的流輸入處理。如果處理不存在,這叫拋出一個異常RESOURCE_DOES_NOT_EXIST
。文件上傳的典型工作流程是:
創建
端點 |
HTTP方法 |
---|---|
|
|
打開一個流寫入一個文件,並返回一個處理流。有一個10分鍾的閑置超時處理。如果一個文件或目錄已經存在於給定的路徑和覆蓋
設置為false,這叫拋出一個異常呢RESOURCE_ALREADY_EXISTS
。文件上傳的典型工作流程是:
例子
curl——netrc - x\https://1234567890123456.7.gcp.www.eheci.com/api/2.0/dbfs/create\——數據”{“路徑”:“/ tmp / HelloWorld。txt”、“覆蓋”:真}’
{“處理”:1234567890123456}
刪除
端點 |
HTTP方法 |
---|---|
|
|
刪除文件或目錄(可選遞歸刪除目錄中的所有文件)。這個調用將拋出一個異常IO_ERROR
如果路徑是一個非空目錄和遞歸是設置為false或其他類似的錯誤。
當你刪除大量的文件,刪除操作在增量。調用返回一個響應大約45秒後一條錯誤消息(503服務不可用),要求您重新調用刪除操作直到完全刪除的目錄結構。例如:
{“error_code”:“PARTIAL_DELETE”,“消息”:“請求的操作刪除324個文件。有多個文件。你必須讓另一個請求刪除更多。”}
對於刪除超過10 k文件的操作,我們不鼓勵使用DBFS REST API,但是建議你執行這樣的操作在一個集群中,使用文件係統實用程序(dbutils.fs)。dbutils.fs
涵蓋了DBFS REST API的功能範圍,但從筆記本。運行這些操作使用筆記本提供更好的控製和可管理性,如選擇性刪除,有可能自動定期刪除工作。
獲得地位
端點 |
HTTP方法 |
---|---|
|
|
得到一個文件或目錄的文件信息。如果文件或目錄不存在,這個調用將拋出一個異常RESOURCE_DOES_NOT_EXIST
。
列表
端點 |
HTTP方法 |
---|---|
|
|
列出一個目錄的內容,或文件的詳細信息。如果文件或目錄不存在,這個調用將拋出一個異常RESOURCE_DOES_NOT_EXIST
。
當調用列表
在大目錄,列表
操作將大約60秒後超時。我們強烈推薦使用列表
隻有在目錄包含少於10 k文件,並阻止使用DBFS REST API超過10 k文件列表的操作。相反,我們建議您執行這樣的操作在一個集群的環境中,使用文件係統實用程序(dbutils.fs)沒有超時,它提供了相同的功能。
例子
curl——netrc - x\https://1234567890123456.7.gcp.www.eheci.com/api/2.0/dbfs/list\——數據{“路徑”:“/ tmp”}”\|金橋。
{“文件”:({“路徑”:“/ tmp / HelloWorld.txt”,“is_dir”:假,“file_size”:13,“modification_time”:1622054945000},{“…”}]}
響應結構
字段名 |
類型 |
描述 |
---|---|---|
文件 |
一個數組的FileInfo |
FileInfo列表描述目錄或文件的內容。 |
mkdir
端點 |
HTTP方法 |
---|---|
|
|
創建給定目錄和必要的父目錄不存在。如果存在一個文件(不是一個目錄)在任何前綴的輸入路徑,這個調用將拋出一個異常RESOURCE_ALREADY_EXISTS
。如果這個操作失敗可能已經成功製造出一些必要的父目錄。
移動
端點 |
HTTP方法 |
---|---|
|
|
一個文件從一個位置移動到另一個位置DBFS之內。如果源文件不存在,這叫拋出一個異常RESOURCE_DOES_NOT_EXIST
。如果已經存在一個文件在目的地的路徑,這個調用將拋出一個異常RESOURCE_ALREADY_EXISTS
。如果給定的源路徑是一個目錄,這叫總是遞歸地移動所有的文件。
當移動大量文件時,API調用將大約60秒後超時,可能導致部分移動數據。因此,對於操作移動超過10 k文件,我們強烈反對使用DBFS REST API。相反,我們建議您執行這樣的操作在一個集群的環境中,使用文件係統實用程序(dbutils.fs)從一個筆記本,它提供了相同的功能沒有超時。
把
端點 |
HTTP方法 |
---|---|
|
|
通過使用多部分表單上傳文件。它主要用於流媒體上傳,但是也可以使用作為一個方便的單一數據上傳。
的數據量,可以通過使用內容
參數是限於1 MB如果指定為一個字符串(MAX_BLOCK_SIZE_EXCEEDED
如果超過)和2 GB的文件。
例子
上傳本地文件命名HelloWorld.txt
在當前目錄:
curl——netrc - x\https://1234567890123456.7.gcp.www.eheci.com/api/2.0/dbfs/put\——形式內容=@HelloWorld.txt\——形式路徑=“/ tmp / HelloWorld.txt”\——形式覆蓋=真正的
上傳內容你好,世界!
base64編碼的字符串:
curl——netrc - x\https://1234567890123456.7.gcp.www.eheci.com/api/2.0/dbfs/put\——數據”{“路徑”:“/ tmp / HelloWorld。txt”、“內容”:“SGVsbG8sIFdvcmxkIQ = =”、“覆蓋”:真正的}
{}
讀
端點 |
HTTP方法 |
---|---|
|
|
返回文件的內容。如果文件不存在,這叫拋出一個異常RESOURCE_DOES_NOT_EXIST
。如果是一個目錄的路徑,讀取長度是負的,或者抵消是負的,這叫拋出一個異常INVALID_PARAMETER_VALUE
。如果讀取長度超過1 MB,這叫拋出一個異常MAX_READ_SIZE_EXCEEDED
。如果抵消+長度
超過在文件的字節數,直到文件讀取內容。
例子
假設文件指定字符串的內容你好,世界!
。一個抵消
的1
和一個長度
的8
返回base64編碼的字符串ZWxsbywgV28 =
當解碼嗨,我們
。
curl——netrc - x\https://1234567890123456.7.gcp.www.eheci.com/api/2.0/dbfs/read\——數據”{“路徑”:“/ tmp / HelloWorld。txt”、“抵消”:1、“長度”:8}’\|金橋。
{“bytes_read”:8,“數據”:" ZWxsbywgV28 = "}