你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
DataLakeDirectoryClient 类
与 DataLake 目录交互的客户端,即使该目录可能尚不存在。
对于与目录下的特定子目录或文件相关的操作,可以使用 或 get_file_client 函数检索get_sub_directory_client目录客户端或文件客户端。
- 继承
-
azure.storage.filedatalake._path_client.PathClientDataLakeDirectoryClient
构造函数
DataLakeDirectoryClient(account_url: str, file_system_name: str, directory_name: str, credential: str | Dict[str, str] | AzureNamedKeyCredential | AzureSasCredential | TokenCredential | None = None, **kwargs: Any)
参数
- credential
用于进行身份验证的凭据。 如果帐户 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 (无限租用) 。
- 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]
参数
- content_settings
- ContentSettings
用于设置路径属性的 ContentSettings 对象。
- lease
- DataLakeLeaseClient 或 str
如果文件具有活动租约,则为必需。 值可以是 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 上使用的匹配条件。
使用给定密钥加密服务端的数据。 客户提供的密钥的使用必须通过 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
参数
- content_settings
- ContentSettings
用于设置路径属性的 ContentSettings 对象。
- metadata
作为元数据、与文件关联的名称-值对。
- lease
- DataLakeLeaseClient 或 str
如果文件具有活动租约,则为必需。 值可以是 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的类型是 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 上使用的匹配条件。
使用给定密钥加密服务端的数据。 客户提供的密钥的使用必须通过 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
参数
- content_settings
- ContentSettings
用于设置路径属性的 ContentSettings 对象。
- lease
- DataLakeLeaseClient 或 str
如果文件具有活动租约,则为必需。 值可以是 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 使用的匹配条件。
使用给定的密钥加密服务端上的数据。 必须使用 HTTPS 使用客户提供的密钥。
- timeout
- int
设置操作的服务器端超时时间(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处。
返回
子目录的 DataLakeDirectoryClient。
delete_directory
标记要删除的指定目录。
delete_directory(**kwargs) -> None
参数
- lease
- DataLakeLeaseClient 或 str
如果文件具有活动租约,则为必需。 值可以是 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
参数
- lease
- DataLakeLeaseClient 或 str
如果文件具有活动租约,则为必需。 值可以是 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
参数
- credential
用于进行身份验证的凭据。 如果帐户 URL 已有 SAS 令牌,则这是可选的。 该值可以是 SAS 令牌字符串、AzureSasCredential 的实例或 azure.core.credentials 中的 AzureNamedKeyCredential、帐户共享访问密钥或 azure.identity 中的 TokenCredentials 类的实例。 如果资源 URI 已包含 SAS 令牌,则会忽略此令牌,转而使用显式凭据
- AzureSasCredential 的情况除外,其中冲突的 SAS 令牌将引发 ValueError。 如果使用 AzureNamedKeyCredential 的实例,则“name”应为存储帐户名称,“密钥”应为存储帐户密钥。
- 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
- DataLakeLeaseClient 或 str
如果文件/目录具有活动租约,则为必需。 值可以是 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
- DataLakeLeaseClient 或 str
如果目录或文件具有活动租约,则是必需的。 值可以是 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 上使用的匹配条件。
使用给定密钥解密服务端的数据。 客户提供的密钥的使用必须通过 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
- str 或 FileProperties
要与之交互的文件。 这可以是文件的名称,也可以是 FileProperties 的实例。例如directory/subdirectory/file
返回
DataLakeFileClient。
返回类型
get_sub_directory_client
获取客户端以与当前目录的指定子目录交互。
子目录尚不存在。
get_sub_directory_client(sub_directory: DirectoryProperties | str) -> DataLakeDirectoryClient
参数
返回
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
参数
- source_lease
- DataLakeLeaseClient 或 str
源路径的租约 ID。 如果指定,则源路径必须具有活动租约,并且租约 ID 必须匹配。
- lease
- DataLakeLeaseClient 或 str
如果文件/目录具有活动租约,则是必需的。 值可以是 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]
参数
- permissions
- str
可选,并且仅在为帐户启用分层命名空间时有效。 为文件所有者、文件拥有组等设置 POSIX 访问权限。 可以向每个类授予读取、写入或执行权限。 还支持粘滞位。 支持符号 (rwxrw-rw-) 和 4 位八进制表示法 (,例如 0766) 。 权限和 acl 是互斥的。
- acl
- str
设置对文件和目录的 POSIX 访问控制权限。 该值是访问控制项的逗号分隔列表。 每个访问控制项 (ACE) 由范围、类型、用户或组标识符以及格式为“[scope:][type]:[id]:[permissions]”的权限组成。 权限和 acl 是互斥的。
- lease
- DataLakeLeaseClient 或 str
如果文件/目录具有活动租约,则为必需。 值可以是 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]
参数
- lease
- DataLakeLeaseClient 或 str
如果指定,则仅当文件系统的租约处于活动状态并且与此 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]
参数
- lease
- DataLakeLeaseClient 或 str
如果指定,则仅当文件系统的租约处于活动状态并且与此 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 使用的匹配条件。
使用给定的密钥加密服务端上的数据。 必须使用 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