你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

DataLakeDirectoryClient 类

与 DataLake 目录交互的客户端,即使该目录可能尚不存在。

对于与目录下的特定子目录或文件相关的操作,可以使用 或 get_file_client 函数检索get_sub_directory_client目录客户端或文件客户端。

继承
azure.storage.filedatalake._path_client.PathClient
DataLakeDirectoryClient

构造函数

DataLakeDirectoryClient(account_url: str, file_system_name: str, directory_name: str, credential: str | Dict[str, str] | AzureNamedKeyCredential | AzureSasCredential | TokenCredential | None = None, **kwargs: Any)

参数

account_url
str
必需

存储帐户的 URI。

file_system_name
str
必需

一个或多个目录的文件系统。

directory_name
str
必需

目录的整个路径。 例如 {file system}/{directory to interact}

credential
默认值: None

用于进行身份验证的凭据。 如果帐户 URL 已具有 SAS 令牌,则这是可选的。 该值可以是 SAS 令牌字符串、azure.core.credentials 中的 AzureSasCredential 或 AzureNamedKeyCredential 的实例、帐户共享访问密钥或 azure.identity 中的 TokenCredentials 类的实例。 如果资源 URI 已包含 SAS 令牌,则会忽略此令牌,转而使用显式凭据

  • AzureSasCredential 的情况除外,其中冲突的 SAS 令牌将引发 ValueError。 如果使用 AzureNamedKeyCredential 的实例,“name”应为存储帐户名称,“key”应为存储帐户密钥。
api_version
str

用于请求的存储 API 版本。 默认值是与当前 SDK 兼容的最新服务版本。 设置为较旧版本可能会导致功能兼容性降低。

示例

从连接字符串创建 DataLakeServiceClient。


   from azure.storage.filedatalake import DataLakeDirectoryClient
   DataLakeDirectoryClient.from_connection_string(connection_string, "myfilesystem", "mydirectory")

变量

url
str

文件系统的完整终结点 URL,包括 SAS 令牌(如果使用)。

primary_endpoint
str

完整的主终结点 URL。

primary_hostname
str

主终结点的主机名。

方法

acquire_lease

请求新的租约。 如果文件或目录没有活动租约,DataLake 服务会在文件/目录上创建租约,并返回新的租约 ID。

close

此方法用于关闭客户端打开的套接字。 与上下文管理器一起使用时,不需要使用它。

create_directory

创建新目录。

create_file

创建新文件并返回要与之交互的文件客户端。

create_sub_directory

创建子目录并返回要与之交互的子目录客户端。

delete_directory

标记要删除的指定目录。

delete_sub_directory

标记要删除的指定子目录。

exists

如果目录存在,则返回 True,否则返回 False。

from_connection_string

从连接字符串创建 DataLakeDirectoryClient。

get_access_control
get_directory_properties

返回目录的所有用户定义的元数据、标准 HTTP 属性和系统属性。 它不返回目录的内容。

get_file_client

获取客户端以与指定文件交互。

该文件不需要已经存在。

get_sub_directory_client

获取客户端以与当前目录的指定子目录交互。

子目录尚不存在。

remove_access_control_recursive

删除路径和子路径上的访问控制。

rename_directory

重命名源目录。

set_access_control

设置路径的所有者、组、权限或访问控制列表。

set_access_control_recursive

设置路径和子路径上的访问控制。

set_http_headers

设置文件或目录上的系统属性。

如果为content_settings设置了一个属性,则将重写所有属性。

set_metadata

为指定的文件系统设置一个或多个用户定义的名称/值对。 每次调用此操作都会替换附加到文件系统的所有现有元数据。 若要从文件系统中删除所有元数据,请调用此操作,不带元数据 dict。

update_access_control_recursive

修改路径和子路径上的访问控制。

acquire_lease

请求新的租约。 如果文件或目录没有活动租约,DataLake 服务会在文件/目录上创建租约,并返回新的租约 ID。

acquire_lease(lease_duration: int | None = -1, lease_id: str | None = None, **kwargs) -> DataLakeLeaseClient

参数

lease_duration
int
必需

指定租约的持续时间(秒),或者指定 -1 以表示永不过期的租约。 有限期租约在 15 到 60 秒之间。 不能使用续订或更改来更改租约持续时间。 默认值为 -1 (无限租用) 。

lease_id
str
必需

建议的租约 ID,采用 GUID 字符串格式。 如果建议的租用 ID 格式不正确,DataLake 服务将返回 400 (无效请求) 。

if_modified_since
datetime

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

etag
str

ETag 值或通配符 (*)。 用于检查资源是否已更改,并根据 match_condition 参数指定的条件进行操作。

match_condition
MatchConditions

在 etag 上使用的匹配条件。

timeout
int

设置操作的服务器端超时(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处

返回

DataLakeLeaseClient 对象,可在上下文管理器中运行。

返回类型

close

此方法用于关闭客户端打开的套接字。 与上下文管理器一起使用时,不需要使用它。

close() -> None

create_directory

创建新目录。

create_directory(metadata: Dict[str, str] | None = None, **kwargs) -> Dict[str, str | datetime]

参数

metadata
dict(str, str)
必需

作为元数据、与文件关联的名称-值对。

content_settings
ContentSettings

用于设置路径属性的 ContentSettings 对象。

lease
DataLakeLeaseClientstr

如果文件具有活动租约,则为必需。 值可以是 DataLakeLeaseClient 对象,也可以是租约 ID 作为字符串。

umask
str

可选,仅当为帐户启用分层命名空间时有效。 创建文件或目录且父文件夹没有默认 ACL 时,umask 会限制要创建的文件或目录的权限。 生成的权限由 p & ^u 提供,其中 p 是权限,而您是 umask。 例如,如果 p 为 0777,而您为 0057,则生成的权限为 0720。 目录的默认权限为 0777,文件的默认权限为 0666。 默认的 umask 为 0027。 必须使用 4 位八进制表示法 (指定 umask,例如 0766) 。

owner
str

文件或目录的所有者。

group
str

文件或目录的拥有组。

acl
str

设置对文件和目录的 POSIX 访问控制权限。 该值是一个以逗号分隔的访问控制项列表。 ACE) (每个访问控制项都由一个范围、一个类型、一个用户或组标识符以及格式为“[scope:][type]:[id]:[permissions]”的权限组成。

lease_id
str

建议的租约 ID,采用 GUID 字符串格式。 如果建议的租用 ID 格式不正确,DataLake 服务将返回 400 (无效请求) 。

lease_duration
int

指定租约的持续时间(秒),或者指定 -1 以表示永不过期的租约。 有限期租约在 15 到 60 秒之间。 不能使用续订或更改来更改租约持续时间。

permissions
str

可选,仅当为帐户启用分层命名空间时有效。 设置文件所有者、文件拥有组和其他文件的 POSIX 访问权限。 可以向每个类授予读取、写入或执行权限。 还支持粘滞位。 支持符号 (rwxrw-rw-) 和 4 位八进制表示法 (例如 0766) 。

if_modified_since
datetime

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

etag
str

ETag 值或通配符 (*)。 用于检查资源是否已更改,并根据 match_condition 参数指定的条件进行操作。

match_condition
MatchConditions

在 etag 上使用的匹配条件。

cpk
CustomerProvidedEncryptionKey

使用给定密钥加密服务端的数据。 客户提供的密钥的使用必须通过 HTTPS 完成。

timeout
int

设置操作的服务器端超时(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处

返回

响应标头的字典。

返回类型

示例

创建目录。


   directory_client.create_directory()

create_file

创建新文件并返回要与之交互的文件客户端。

create_file(file: FileProperties | str, **kwargs) -> DataLakeFileClient

参数

file
strFileProperties
必需

要与之交互的文件。 这可以是文件的名称,也可以是 FileProperties 的实例。

content_settings
ContentSettings

用于设置路径属性的 ContentSettings 对象。

metadata

作为元数据、与文件关联的名称-值对。

lease
DataLakeLeaseClientstr

如果文件具有活动租约,则为必需。 值可以是 DataLakeLeaseClient 对象,也可以是租约 ID 作为字符串。

umask
str

可选,仅当为帐户启用分层命名空间时有效。 创建文件或目录且父文件夹没有默认 ACL 时,umask 会限制要创建的文件或目录的权限。 生成的权限由 p & ^u 提供,其中 p 是权限,而您是 umask。 例如,如果 p 为 0777,而您为 0057,则生成的权限为 0720。 目录的默认权限为 0777,文件的默认权限为 0666。 默认的 umask 为 0027。 必须使用 4 位八进制表示法 (指定 umask,例如 0766) 。

owner
str

文件或目录的所有者。

group
str

文件或目录的拥有组。

acl
str

设置对文件和目录的 POSIX 访问控制权限。 该值是一个以逗号分隔的访问控制项列表。 ACE) (每个访问控制项都由一个范围、一个类型、一个用户或组标识符以及格式为“[scope:][type]:[id]:[permissions]”的权限组成。

lease_id
str

建议的租约 ID,采用 GUID 字符串格式。 如果建议的租用 ID 格式不正确,DataLake 服务将返回 400 (无效请求) 。

lease_duration
int

指定租约的持续时间(秒),或者指定 -1 以表示永不过期的租约。 有限期租约在 15 到 60 秒之间。 不能使用续订或更改来更改租约持续时间。

expires_on
datetimeint

将文件设置为过期的时间。 如果expires_on的类型是 int,则过期时间将设置为从创建时间开始经过的毫秒数。 如果expires_on的类型为 datetime,则将过期时间设置为提供的绝对时间。 如果未提供时区信息,则会将其解释为 UTC。

permissions
str

可选,仅当为帐户启用分层命名空间时有效。 设置文件所有者、文件拥有组和其他文件的 POSIX 访问权限。 可以向每个类授予读取、写入或执行权限。 还支持粘滞位。 支持符号 (rwxrw-rw-) 和 4 位八进制表示法 (例如 0766) 。

if_modified_since
datetime

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

etag
str

ETag 值或通配符 (*)。 用于检查资源是否已更改,并根据 match_condition 参数指定的条件进行操作。

match_condition
MatchConditions

在 etag 上使用的匹配条件。

cpk
CustomerProvidedEncryptionKey

使用给定密钥加密服务端的数据。 客户提供的密钥的使用必须通过 HTTPS 完成。

timeout
int

设置操作的服务器端超时(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处

返回

DataLakeFileClient

create_sub_directory

创建子目录并返回要与之交互的子目录客户端。

create_sub_directory(sub_directory: DirectoryProperties | str, metadata: Dict[str, str] | None = None, **kwargs) -> DataLakeDirectoryClient

参数

sub_directory
strDirectoryProperties
必需

要与之交互的目录。 这可以是目录的名称,也可以是 DirectoryProperties 的实例。

metadata
dict(str, str)
必需

作为元数据、与文件关联的名称-值对。

content_settings
ContentSettings

用于设置路径属性的 ContentSettings 对象。

lease
DataLakeLeaseClientstr

如果文件具有活动租约,则为必需。 值可以是 DataLakeLeaseClient 对象,也可以是租约 ID 作为字符串。

umask
str

可选,仅当为帐户启用分层命名空间时有效。 创建文件或目录且父文件夹没有默认 ACL 时,umask 会限制要创建的文件或目录的权限。 生成的权限由 p & ^u 提供,其中 p 是权限,而您是 umask。 例如,如果 p 为 0777,而您为 0057,则生成的权限为 0720。 目录的默认权限为 0777,文件的默认权限为 0666。 默认的 umask 为 0027。 必须使用 4 位八进制表示法 (指定 umask,例如 0766) 。

owner
str

文件或目录的所有者。

group
str

文件或目录的拥有组。

acl
str

设置对文件和目录的 POSIX 访问控制权限。 该值是一个以逗号分隔的访问控制项列表。 ACE) (每个访问控制项都由一个范围、一个类型、一个用户或组标识符以及格式为“[scope:][type]:[id]:[permissions]”的权限组成。

lease_id
str

建议的租约 ID,采用 GUID 字符串格式。 如果建议的租用 ID 格式不正确,DataLake 服务将返回 400 (无效请求) 。

lease_duration
int

指定租约的持续时间(秒),或者指定 -1 以表示永不过期的租约。 有限期租约在 15 到 60 秒之间。 不能使用续订或更改来更改租约持续时间。

permissions
str

可选,仅当为帐户启用分层命名空间时有效。 设置文件所有者、文件拥有组和其他文件的 POSIX 访问权限。 可以向每个类授予读取、写入或执行权限。 还支持粘滞位。 支持符号 (rwxrw-rw-) 和 4 位八进制表示法 (例如 0766) 。

if_modified_since
datetime

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

etag
str

ETag 值或通配符 (*)。 用于检查资源是否已更改,并根据 match_condition 参数指定的条件进行操作。

match_condition
MatchConditions

要对 etag 使用的匹配条件。

cpk
CustomerProvidedEncryptionKey

使用给定的密钥加密服务端上的数据。 必须使用 HTTPS 使用客户提供的密钥。

timeout
int

设置操作的服务器端超时时间(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处

返回

子目录的 DataLakeDirectoryClient。

delete_directory

标记要删除的指定目录。

delete_directory(**kwargs) -> None

参数

lease
DataLakeLeaseClientstr

如果文件具有活动租约,则为必需。 值可以是 LeaseClient 对象,也可以是作为字符串的租用 ID。

if_modified_since
datetime

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

etag
str

ETag 值或通配符 (*)。 用于检查资源是否已更改,并根据 match_condition 参数指定的条件进行操作。

match_condition
MatchConditions

要对 etag 使用的匹配条件。

timeout
int

设置操作的服务器端超时时间(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处

返回

示例

删除目录。


   new_directory.delete_directory()

delete_sub_directory

标记要删除的指定子目录。

delete_sub_directory(sub_directory: DirectoryProperties | str, **kwargs) -> DataLakeDirectoryClient

参数

sub_directory
strDirectoryProperties
必需

要与之交互的目录。 这可以是目录的名称,也可以是 DirectoryProperties 的实例。

lease
DataLakeLeaseClientstr

如果文件具有活动租约,则为必需。 值可以是 LeaseClient 对象,也可以是作为字符串的租用 ID。

if_modified_since
datetime

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

etag
str

ETag 值或通配符 (*)。 用于检查资源是否已更改,并根据 match_condition 参数指定的条件进行操作。

match_condition
MatchConditions

要对 etag 使用的匹配条件。

timeout
int

设置操作的服务器端超时时间(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处

返回

子目录的 DataLakeDirectoryClient

exists

如果目录存在,则返回 True,否则返回 False。

exists(**kwargs: Any) -> bool

参数

timeout
int

设置操作的服务器端超时时间(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处

返回

如果目录存在,则为 True;否则为 False。

返回类型

from_connection_string

从连接字符串创建 DataLakeDirectoryClient。

from_connection_string(conn_str: str, file_system_name: str, directory_name: str, credential: str | Dict[str, str] | AzureNamedKeyCredential | AzureSasCredential | TokenCredential | None = None, **kwargs: Any) -> Self

参数

conn_str
str
必需

Azure 存储帐户的连接字符串。

file_system_name
str
必需

要与之交互的文件系统的名称。

credential
默认值: None

用于进行身份验证的凭据。 如果帐户 URL 已有 SAS 令牌,则这是可选的。 该值可以是 SAS 令牌字符串、AzureSasCredential 的实例或 azure.core.credentials 中的 AzureNamedKeyCredential、帐户共享访问密钥或 azure.identity 中的 TokenCredentials 类的实例。 如果资源 URI 已包含 SAS 令牌,则会忽略此令牌,转而使用显式凭据

  • AzureSasCredential 的情况除外,其中冲突的 SAS 令牌将引发 ValueError。 如果使用 AzureNamedKeyCredential 的实例,则“name”应为存储帐户名称,“密钥”应为存储帐户密钥。
directory_name
str
必需

要与之交互的目录的名称。 目录位于文件系统下。

credential
必需

用于进行身份验证的凭据。 如果帐户 URL 已有 SAS 令牌,或者连接字符串已具有共享访问密钥值,则这是可选的。 该值可以是 SAS 令牌字符串、AzureSasCredential 的实例或 azure.core.credentials 中的 AzureNamedKeyCredential、帐户共享访问密钥或 azure.identity 中的 TokenCredentials 类的实例。 此处提供的凭据优先于连接字符串中的凭据。 如果使用 AzureNamedKeyCredential 的实例,则“name”应为存储帐户名称,“密钥”应为存储帐户密钥。

返回

DataLakeDirectoryClient

返回类型

get_access_control

get_access_control(upn: bool | None = None, **kwargs) -> Dict[str, Any]

参数

upn
bool
必需

可选。 仅当为帐户启用分层命名空间时有效。 如果为“true”,则 x-ms-owner、x-ms-group 和 x-ms-acl 响应标头中返回的用户标识值将从 Azure Active Directory 对象 ID 转换为用户主体名称。 如果为“false”,则值将作为 Azure Active Directory 对象 ID 返回。 默认值为 false。 请注意,组和应用程序对象 ID 不会转换,因为它们没有唯一的友好名称。

lease
DataLakeLeaseClientstr

如果文件/目录具有活动租约,则为必需。 值可以是 LeaseClient 对象,也可以是作为字符串的租用 ID。

if_modified_since
datetime

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

etag
str

ETag 值或通配符 (*)。 用于检查资源是否已更改,并根据 match_condition 参数指定的条件进行操作。

match_condition
MatchConditions

在 etag 上使用的匹配条件。

timeout
int

设置操作的服务器端超时(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处

response dict

响应 dict。

get_directory_properties

返回目录的所有用户定义的元数据、标准 HTTP 属性和系统属性。 它不返回目录的内容。

get_directory_properties(**kwargs: Any) -> DirectoryProperties

参数

lease
DataLakeLeaseClientstr

如果目录或文件具有活动租约,则是必需的。 值可以是 DataLakeLeaseClient 对象,也可以是租约 ID 作为字符串。

if_modified_since
datetime

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

etag
str

ETag 值或通配符 (*)。 用于检查资源是否已更改,并根据 match_condition 参数指定的条件进行操作。

match_condition
MatchConditions

在 etag 上使用的匹配条件。

cpk
CustomerProvidedEncryptionKey

使用给定密钥解密服务端的数据。 客户提供的密钥的使用必须通过 HTTPS 完成。 如果目录是使用客户提供的密钥创建的,则是必需的。

timeout
int

设置操作的服务器端超时(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处

返回类型

示例

获取文件/目录的属性。


   props = new_directory.get_directory_properties()

get_file_client

获取客户端以与指定文件交互。

该文件不需要已经存在。

get_file_client(file: FileProperties | str) -> DataLakeFileClient

参数

file
strFileProperties
必需

要与之交互的文件。 这可以是文件的名称,也可以是 FileProperties 的实例。例如directory/subdirectory/file

返回

DataLakeFileClient。

返回类型

get_sub_directory_client

获取客户端以与当前目录的指定子目录交互。

子目录尚不存在。

get_sub_directory_client(sub_directory: DirectoryProperties | str) -> DataLakeDirectoryClient

参数

sub_directory
strDirectoryProperties
必需

要与之交互的目录。 这可以是目录的名称,也可以是 DirectoryProperties 的实例。

返回

DataLakeDirectoryClient。

返回类型

remove_access_control_recursive

删除路径和子路径上的访问控制。

remove_access_control_recursive(acl: str, **kwargs: Any) -> AccessControlChangeResult

参数

acl
str
必需

删除对文件和目录的 POSIX 访问控制权限。 该值是一个以逗号分隔的访问控制项列表。 ACE) (每个访问控制项都由一个范围、一个类型和一个用户或组标识符组成,格式为“[scope:][type]:[id]”。

progress_hook
<xref:func>(AccessControlChanges)

调用方可以跟踪操作进度以及收集无法更改访问控制的路径的回调。

continuation_token
str

可用于恢复以前停止的操作的可选继续标记。

batch_size
int

可选。 如果数据集大小超过批大小,则操作将拆分为多个请求,以便可以跟踪进度。 批大小应介于 1 到 2000 之间。 未指定时的默认值为 2000。

max_batches
int

可选。 定义单个更改访问控制操作可以执行的最大批数。 如果在处理所有子路径之前达到最大值,则可以使用继续标记继续操作。 空值指示未绑定的最大批数,并且操作一直持续到结束。

continue_on_failure
bool

如果设置为 False,则操作将在遇到用户错误 (4XX) 快速终止。 如果为 True,则操作将忽略用户错误,并继续对目录的其他子实体执行该操作。 仅当continue_on_failure为 True 时,才会返回用户错误时的延续标记。 如果未设置,则默认值为 False。

timeout
int

设置操作的服务器端超时(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处

返回

递归操作的摘要,包括成功和失败的计数,以及在操作过早终止的情况下的继续标记。

返回类型

例外

如果令牌可用,用户可以使用 AzureError 的continuation_token字段重启操作。

rename_directory

重命名源目录。

rename_directory(new_name: str, **kwargs: Any) -> DataLakeDirectoryClient

参数

new_name
str
必需

用户要重命名为的新目录名称。 该值必须具有以下格式:“{filesystem}/{directory}/{subdirectory}”。

source_lease
DataLakeLeaseClientstr

源路径的租约 ID。 如果指定,则源路径必须具有活动租约,并且租约 ID 必须匹配。

lease
DataLakeLeaseClientstr

如果文件/目录具有活动租约,则是必需的。 值可以是 LeaseClient 对象,也可以是租约 ID 作为字符串。

if_modified_since
datetime

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

etag
str

ETag 值或通配符 (*)。 用于检查资源是否已更改,并根据 match_condition 参数指定的条件进行操作。

match_condition
MatchConditions

在 etag 上使用的匹配条件。

source_if_modified_since
datetime

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

source_if_unmodified_since
datetime

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

source_etag
str

源 ETag 值或通配符 (*) 。 用于检查资源是否已更改,并根据 match_condition 参数指定的条件进行操作。

source_match_condition
MatchConditions

要用于 etag 的源匹配条件。

timeout
int

设置操作的服务器端超时时间(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处

返回

DataLakeDirectoryClient

示例

重命名源目录。


   new_dir_name = "testdir2"
   print("Renaming the directory named '{}' to '{}'.".format(dir_name, new_dir_name))
   new_directory = directory_client\
       .rename_directory(new_name=directory_client.file_system_name + '/' + new_dir_name)

set_access_control

设置路径的所有者、组、权限或访问控制列表。

set_access_control(owner: str | None = None, group: str | None = None, permissions: str | None = None, acl: str | None = None, **kwargs) -> Dict[str, str | datetime]

参数

owner
str
必需

可选。 文件或目录的所有者。

group
str
必需

可选。 文件或目录的拥有组。

permissions
str
必需

可选,并且仅在为帐户启用分层命名空间时有效。 为文件所有者、文件拥有组等设置 POSIX 访问权限。 可以向每个类授予读取、写入或执行权限。 还支持粘滞位。 支持符号 (rwxrw-rw-) 和 4 位八进制表示法 (,例如 0766) 。 权限和 acl 是互斥的。

acl
str
必需

设置对文件和目录的 POSIX 访问控制权限。 该值是访问控制项的逗号分隔列表。 每个访问控制项 (ACE) 由范围、类型、用户或组标识符以及格式为“[scope:][type]:[id]:[permissions]”的权限组成。 权限和 acl 是互斥的。

lease
DataLakeLeaseClientstr

如果文件/目录具有活动租约,则为必需。 值可以是 LeaseClient 对象,也可以是作为字符串的租用 ID。

if_modified_since
datetime

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

etag
str

ETag 值或通配符 (*)。 用于检查资源是否已更改,并根据 match_condition 参数指定的条件进行操作。

match_condition
MatchConditions

要对 etag 使用的匹配条件。

timeout
int

设置操作的服务器端超时时间(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处

response dict

响应 dict (Etag 和上次修改) 。

set_access_control_recursive

设置路径和子路径上的访问控制。

set_access_control_recursive(acl: str, **kwargs: Any) -> AccessControlChangeResult

参数

acl
str
必需

设置对文件和目录的 POSIX 访问控制权限。 该值是访问控制项的逗号分隔列表。 每个访问控制项 (ACE) 由范围、类型、用户或组标识符以及格式为“[scope:][type]:[id]:[permissions]”的权限组成。

progress_hook
<xref:func>(AccessControlChanges)

调用方可以跟踪操作进度以及收集无法更改访问控制的路径的回调。

continuation_token
str

可用于恢复以前停止的操作的可选继续标记。

batch_size
int

可选。 如果数据集大小超过批大小,则操作将拆分为多个请求,以便跟踪进度。 批大小应介于 1 和 2000 之间。 未指定时的默认值为 2000。

max_batches
int

可选。 定义单个更改访问控制操作可以执行的最大批数。 如果在处理所有子路径之前达到最大值,则可以使用继续标记继续操作。 空值指示未绑定的最大批数和操作一直持续到结束。

continue_on_failure
bool

如果设置为 False,则遇到用户错误 (4XX) 时,操作将快速终止。 如果为 True,则操作将忽略用户错误,并继续对目录的其他子实体执行该操作。 仅当用户出错时,continue_on_failure为 True 时,才会返回延续令牌。 如果未设置,则默认值为 False。

timeout
int

设置操作的服务器端超时时间(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处

返回

递归操作的摘要,包括成功和失败的计数,以及在操作过早终止的情况下的继续标记。

返回类型

例外

如果令牌可用,用户可以使用 AzureError 的continuation_token字段重启操作。

set_http_headers

设置文件或目录上的系统属性。

如果为content_settings设置了一个属性,则将重写所有属性。

set_http_headers(content_settings: ContentSettings | None = None, **kwargs) -> Dict[str, Any]

参数

content_settings
ContentSettings
必需

用于设置文件/目录属性的 ContentSettings 对象。

lease
DataLakeLeaseClientstr

如果指定,则仅当文件系统的租约处于活动状态并且与此 ID 匹配时,set_file_system_metadata才会成功。

if_modified_since
datetime

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

etag
str

ETag 值或通配符 (*)。 用于检查资源是否已更改,并根据 match_condition 参数指定的条件进行操作。

match_condition
MatchConditions

要对 etag 使用的匹配条件。

timeout
int

设置操作的服务器端超时时间(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处

返回

文件/目录更新的属性 dict (Etag 和上次修改)

返回类型

set_metadata

为指定的文件系统设置一个或多个用户定义的名称/值对。 每次调用此操作都会替换附加到文件系统的所有现有元数据。 若要从文件系统中删除所有元数据,请调用此操作,不带元数据 dict。

set_metadata(metadata: Dict[str, str], **kwargs) -> Dict[str, str | datetime]

参数

metadata
Dict[str, str]
必需

包含要作为元数据与文件系统关联的名称/值对的 dict。 示例:{'category':'test'}

lease
DataLakeLeaseClientstr

如果指定,则仅当文件系统的租约处于活动状态并且与此 ID 匹配时,set_file_system_metadata才会成功。

if_modified_since
datetime

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

etag
str

ETag 值或通配符 (*)。 用于检查资源是否已更改,并根据 match_condition 参数指定的条件进行操作。

match_condition
MatchConditions

要对 etag 使用的匹配条件。

cpk
CustomerProvidedEncryptionKey

使用给定的密钥加密服务端上的数据。 必须使用 HTTPS 使用客户提供的密钥。

timeout
int

设置操作的服务器端超时时间(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处

返回

文件系统更新的属性 dict (Etag 和上次修改) 。

update_access_control_recursive

修改路径和子路径上的访问控制。

update_access_control_recursive(acl: str, **kwargs: Any) -> AccessControlChangeResult

参数

acl
str
必需

修改对文件和目录的 POSIX 访问控制权限。 该值是访问控制项的逗号分隔列表。 每个访问控制项 (ACE) 由范围、类型、用户或组标识符以及格式为“[scope:][type]:[id]:[permissions]”的权限组成。

progress_hook
<xref:func>(AccessControlChanges)

调用方可以跟踪操作进度以及收集无法更改访问控制的路径的回调。

continuation_token
str

可用于恢复以前停止的操作的可选继续标记。

batch_size
int

可选。 如果数据集大小超过批大小,则操作将拆分为多个请求,以便跟踪进度。 批大小应介于 1 和 2000 之间。 未指定时的默认值为 2000。

max_batches
int

可选。 定义单个更改访问控制操作可以执行的最大批数。 如果在处理所有子路径之前达到最大值,则可以使用继续标记继续操作。 空值指示未绑定的最大批数和操作一直持续到结束。

continue_on_failure
bool

如果设置为 False,则遇到用户错误 (4XX) 时,操作将快速终止。 如果为 True,则操作将忽略用户错误,并继续对目录的其他子实体执行该操作。 仅当用户出错时,continue_on_failure为 True 时,才会返回延续令牌。 如果未设置,则默认值为 False。

timeout
int

设置操作的服务器端超时时间(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处

返回

递归操作的摘要,包括成功和失败的计数,以及在操作过早终止的情况下的继续标记。

返回类型

例外

如果令牌可用,用户可以使用 AzureError 的continuation_token字段重启操作。

属性

api_version

用于请求的存储 API 的版本。

location_mode

客户端当前使用的位置模式。

默认情况下,此为“主要”。 选项包括“主要”和“secondary”。

primary_endpoint

完整的主终结点 URL。

primary_hostname

主终结点的主机名。

secondary_endpoint

完整的辅助终结点 URL(如果已配置)。

如果不可用,将引发 ValueError。 若要显式指定辅助主机名,请在实例化时使用可选的 secondary_hostname 关键字 (keyword) 参数。

例外

secondary_hostname

辅助终结点的主机名。

如果不可用,则为“无”。 若要显式指定辅助主机名,请在实例化时使用可选的 secondary_hostname 关键字 (keyword) 参数。

url

此实体的完整终结点 URL,包括 SAS 令牌(如果使用)。

这可以是主终结点,也可以是辅助终结点,具体取决于当前 location_mode。 :returns:此实体的完整终结点 URL,包括 SAS 令牌(如果使用)。 :rtype:str