DBFS API 2.0
DBFS API是一个砖API,使得它的简单与不同的数据源进行交互,而无需每次读取一个文件包含您的凭据。看到砖文件系统(DBFS)是什么?为更多的信息。对于一个易于使用的命令行客户端DBFS API,明白了砖CLI的设置和文档。
请注意
以确保高质量的服务负载较重的情况下,砖现在执行API DBFS API调用的速度限制。每个工作区,以确保公平用法限制集和高可用性。自动重试可以使用砖CLI 0.12.0及以上版本。我们建议所有客户切换到砖CLI的最新版本。
重要的
访问数据砖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://dbc-a1b2345c-d6e7.cloud.www.neidfyre.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://dbc-a1b2345c-d6e7.cloud.www.neidfyre.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
在本地目录/ tmp / HelloWorld.txt
实例:
curl——netrc - x\https://dbc-a1b2345c-d6e7.cloud.www.neidfyre.com/api/2.0/dbfs/put\——形式内容=@HelloWorld.txt\——形式路径=“/ tmp / HelloWorld.txt”\——形式覆盖=真正的
上传的内容你好,世界!
base64编码的字符串:
curl——netrc - x\https://dbc-a1b2345c-d6e7.cloud.www.neidfyre.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://dbc-a1b2345c-d6e7.cloud.www.neidfyre.com/api/2.0/dbfs/read\——数据”{“路径”:“/ tmp / HelloWorld。txt”、“抵消”:1、“长度”:8}’\|金桥。
{“bytes_read”:8,“数据”:" ZWxsbywgV28 = "}