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方法

2.0 / dbfs / addblock

帖子

附加一塊數據流輸入指定的句柄。如果處理不存在,這個調用將拋出一個異常RESOURCE_DOES_NOT_EXIST。如果數據塊超過1 MB,這叫會拋出一個異常MAX_BLOCK_SIZE_EXCEEDED。文件上傳的典型工作流程是:

  1. 調用創建和處理。

  2. 使一個或多個addblock調用的處理。

  3. 調用關閉與處理。

例子

curl——netrc - x\https://1234567890123456.7.gcp.www.eheci.com/api/2.0/dbfs/add-block\——數據”{“數據”:“SGVsbG8sIFdvcmxkIQ = =”,“處理”:1234567890123456}”
{}

請求結構

字段名

類型

描述

處理

INT64

在一個開放的流處理。這個字段是必需的。

數據

字節

base64編碼數據添加到流中。這1 MB的限製。這個字段是必需的。

關閉

端點

HTTP方法

2.0 / dbfs /關閉

帖子

關閉指定的流輸入處理。如果處理不存在,這叫拋出一個異常RESOURCE_DOES_NOT_EXIST。文件上傳的典型工作流程是:

  1. 調用創建和處理。

  2. 使一個或多個addblock調用的處理。

  3. 調用關閉與處理。

例子

curl——netrc - x\https://1234567890123456.7.gcp.www.eheci.com/api/2.0/dbfs/close\——數據“{“處理”:1234567890123456}”

如果調用成功,沒有輸出顯示。

請求結構

字段名

類型

描述

處理

INT64

在一個開放的流處理。這個字段是必需的。

創建

端點

HTTP方法

2.0 / dbfs /創建

帖子

打開一個流寫入一個文件,並返回一個處理流。有一個10分鍾的閑置超時處理。如果一個文件或目錄已經存在於給定的路徑和覆蓋設置為false,這叫拋出一個異常呢RESOURCE_ALREADY_EXISTS。文件上傳的典型工作流程是:

  1. 調用創建和處理。

  2. 使一個或多個addblock調用的處理。

  3. 調用關閉與處理。

例子

curl——netrc - x\https://1234567890123456.7.gcp.www.eheci.com/api/2.0/dbfs/create\——數據”{“路徑”:“/ tmp / HelloWorld。txt”、“覆蓋”:真}’
{“處理”:1234567890123456}

請求結構

字段名

類型

描述

路徑

字符串

新文件的路徑。應該是絕對的路徑(例如DBFS路徑/ mnt / my-file.txt)。這個字段是必需的。

覆蓋

BOOL

標記,用於指定是否覆蓋現有的文件或文件。

響應結構

字段名

類型

描述

處理

INT64

隨後應傳遞到處理addblock關閉時調用通過一個流寫入一個文件。

刪除

端點

HTTP方法

2.0 / dbfs /刪除

帖子

刪除文件或目錄(可選遞歸刪除目錄中的所有文件)。這個調用將拋出一個異常IO_ERROR如果路徑是一個非空目錄和遞歸是設置為false或其他類似的錯誤。

當你刪除大量的文件,刪除操作在增量。調用返回一個響應大約45秒後一條錯誤消息(503服務不可用),要求您重新調用刪除操作直到完全刪除的目錄結構。例如:

{“error_code”:“PARTIAL_DELETE”,“消息”:“請求的操作刪除324個文件。有多個文件。你必須讓另一個請求刪除更多。”}

對於刪除超過10 k文件的操作,我們不鼓勵使用DBFS REST API,但是建議你執行這樣的操作在一個集群中,使用文件係統實用程序(dbutils.fs)dbutils.fs涵蓋了DBFS REST API的功能範圍,但從筆記本。運行這些操作使用筆記本提供更好的控製和可管理性,如選擇性刪除,有可能自動定期刪除工作。

例子

curl——netrc - x\https://1234567890123456.7.gcp.www.eheci.com/api/2.0/dbfs/delete\——數據”{“路徑”:“/ tmp / HelloWorld。三種“}”
{}

請求結構

字段名

類型

描述

路徑

字符串

刪除文件或目錄的路徑。應該是絕對DBFS路徑的路徑(例如/ mnt / foo /)。這個字段是必需的。

遞歸

BOOL

是否遞歸刪除目錄的內容。刪除空目錄沒有提供遞歸的旗幟。

獲得地位

端點

HTTP方法

2.0 / dbfs /獲得狀態

得到

得到一個文件或目錄的文件信息。如果文件或目錄不存在,這個調用將拋出一個異常RESOURCE_DOES_NOT_EXIST

例子

curl——netrc - x\https://1234567890123456.7.gcp.www.eheci.com/api/2.0/dbfs/get-status\——數據”{“路徑”:“/ tmp / HelloWorld。三種“}”\|金橋。
{“路徑”:“/ tmp / HelloWorld.txt”,“is_dir”:,“file_size”:13,“modification_time”:1622054945000}

請求結構

字段名

類型

描述

路徑

字符串

文件或目錄的路徑。應該是絕對DBFS路徑的路徑(例如,/ mnt /文件夾/)。這個字段是必需的。

響應結構

字段名

類型

描述

路徑

字符串

文件或目錄的路徑。

is_dir

BOOL

是否一個目錄路徑。

file_size

INT64

文件的長度,以字節為單位或零如果是一個目錄的路徑。

modification_time

INT64

最後一次,在時代毫秒,文件或目錄被修改。

列表

端點

HTTP方法

2.0 / dbfs /列表

得到

列出一個目錄的內容,或文件的詳細信息。如果文件或目錄不存在,這個調用將拋出一個異常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},{“…”}]}

請求結構

字段名

類型

描述

路徑

字符串

文件或目錄的路徑。應該是絕對DBFS路徑的路徑(例如/ mnt / foo /)。這個字段是必需的。

響應結構

字段名

類型

描述

文件

一個數組的FileInfo

FileInfo列表描述目錄或文件的內容。

mkdir

端點

HTTP方法

2.0 / dbfs / mkdir

帖子

創建給定目錄和必要的父目錄不存在。如果存在一個文件(不是一個目錄)在任何前綴的輸入路徑,這個調用將拋出一個異常RESOURCE_ALREADY_EXISTS。如果這個操作失敗可能已經成功製造出一些必要的父目錄。

例子

curl——netrc - x\https://1234567890123456.7.gcp.www.eheci.com/api/2.0/dbfs/mkdirs\——數據{“路徑”:“/ tmp / my-new-dir“}”
{}

請求結構

字段名

類型

描述

路徑

字符串

新目錄的路徑。應該是絕對DBFS路徑的路徑(例如,/ mnt /文件夾/)。這個字段是必需的。

移動

端點

HTTP方法

2.0 / dbfs /移動

帖子

一個文件從一個位置移動到另一個位置DBFS之內。如果源文件不存在,這叫拋出一個異常RESOURCE_DOES_NOT_EXIST。如果已經存在一個文件在目的地的路徑,這個調用將拋出一個異常RESOURCE_ALREADY_EXISTS。如果給定的源路徑是一個目錄,這叫總是遞歸地移動所有的文件。

當移動大量文件時,API調用將大約60秒後超時,可能導致部分移動數據。因此,對於操作移動超過10 k文件,我們強烈反對使用DBFS REST API。相反,我們建議您執行這樣的操作在一個集群的環境中,使用文件係統實用程序(dbutils.fs)從一個筆記本,它提供了相同的功能沒有超時。

例子

curl——netrc - x\https://1234567890123456.7.gcp.www.eheci.com/api/2.0/dbfs/move\——數據”{source_path”:“/ tmp / HelloWorld。txt”、“destination_path”:“/ tmp / my-new-dir / HelloWorld。三種“}”
{}

請求結構

字段名

類型

描述

source_path

字符串

源文件或目錄的路徑。應該是絕對DBFS路徑的路徑(例如,/ mnt / my-source-folder /)。這個字段是必需的。

destination_path

字符串

目標文件或目錄的路徑。應該是絕對DBFS路徑的路徑(例如,/ mnt / my-destination-folder /)。這個字段是必需的。

端點

HTTP方法

2.0 / dbfs /把

帖子

通過使用多部分表單上傳文件。它主要用於流媒體上傳,但是也可以使用作為一個方便的單一數據上傳。

的數據量,可以通過使用內容參數是限於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 = =”、“覆蓋”:真正的}
{}

請求結構

字段名

類型

描述

路徑

字符串

新文件的路徑。應該是絕對DBFS路徑的路徑(例如/ mnt / foo /)。這個字段是必需的。

內容

字節

這個參數可能會缺席,而是將使用發布文件。

覆蓋

BOOL

標記,用於指定是否覆蓋現有的文件。

端點

HTTP方法

2.0 / dbfs /閱讀

得到

返回文件的內容。如果文件不存在,這叫拋出一個異常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 = "}

請求結構

字段名

類型

描述

路徑

字符串

文件的路徑。應該是絕對DBFS路徑的路徑(例如/ mnt / foo /)。這個字段是必需的。

抵消

INT64

讀取字節抵消。

長度

INT64

讀取的字節數從偏移量。這有1 MB的限製,默認值為0.5 MB。

響應結構

字段名

類型

描述

bytes_read

INT64

讀取的字節數(可以小於長度如果我們結束的文件)。這是指在未編碼的字節數(響應數據是base64編碼的)版本。

數據

字節

base64編碼內容文件的閱讀。

數據結構

在本節中:

FileInfo

一個文件或目錄的屬性。

字段名

類型

描述

路徑

字符串

文件或目錄的路徑。

is_dir

BOOL

是否一個目錄路徑。

file_size

INT64

文件的長度,以字節為單位或零如果是一個目錄的路徑。

modification_time

INT64

最後一次,在時代毫秒,文件或目錄被修改。