你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
DataLakeServiceClient 类
在帐户级别与 DataLake 服务交互的客户端。
此客户端提供检索和配置帐户属性以及列出、创建和删除帐户中的文件系统的操作。 对于与特定文件系统、目录或文件相关的操作,也可以使用 get_client 函数检索这些实体的客户端。
- 继承
-
azure.storage.filedatalake._shared.base_client.StorageAccountHostsMixinDataLakeServiceClient
构造函数
DataLakeServiceClient(account_url: str, credential: str | Dict[str, str] | AzureNamedKeyCredential | AzureSasCredential | TokenCredential | None = None, **kwargs: Any)
参数
- account_url
- str
DataLake 存储帐户的 URL。 URL 路径 (中包含的任何其他实体(例如文件系统或文件) )将被丢弃。 可以选择使用 SAS 令牌对此 URL 进行身份验证。
- credential
用于进行身份验证的凭据。 如果帐户 URL 已有 SAS 令牌,则这是可选的。 该值可以是 SAS 令牌字符串、AzureSasCredential 的实例或 azure.core.credentials 中的 AzureNamedKeyCredential、帐户共享访问密钥或 azure.identity 中的 TokenCredentials 类的实例。 如果资源 URI 已包含 SAS 令牌,则会忽略此令牌,转而使用显式凭据
- AzureSasCredential 的情况除外,其中冲突的 SAS 令牌将引发 ValueError。 如果使用 AzureNamedKeyCredential 的实例,则“name”应为存储帐户名称,“密钥”应为存储帐户密钥。
- api_version
- str
用于请求的存储 API 版本。 默认值是与当前 SDK 兼容的最新服务版本。 设置为较旧版本可能会导致功能兼容性降低。
示例
从连接字符串创建 DataLakeServiceClient。
from azure.storage.filedatalake import DataLakeServiceClient
datalake_service_client = DataLakeServiceClient.from_connection_string(self.connection_string)
使用 Azure 标识凭据创建 DataLakeServiceClient。
from azure.identity import ClientSecretCredential
token_credential = ClientSecretCredential(
self.active_directory_tenant_id,
self.active_directory_application_id,
self.active_directory_application_secret,
)
datalake_service_client = DataLakeServiceClient("https://{}.dfs.core.windows.net".format(self.account_name),
credential=token_credential)
变量
- url
- str
datalake 服务终结点的完整终结点 URL。
- primary_endpoint
- str
完整的主终结点 URL。
- primary_hostname
- str
主终结点的主机名。
方法
close |
此方法用于关闭客户端打开的套接字。 与上下文管理器一起使用时,不需要使用它。 |
create_file_system |
在指定的帐户下创建新的文件系统。 如果已存在同名的文件系统,则会引发 ResourceExistsError。 此方法返回与新创建的文件系统交互的客户端。 |
delete_file_system |
标记要删除的指定文件系统。 稍后,在垃圾回收期间,将删除文件系统及其中包含的任何文件。 如果未找到文件系统,将引发 ResourceNotFoundError。 |
from_connection_string |
从连接字符串创建 DataLakeServiceClient。 :return a DataLakeServiceClient :rtype ~azure.storage.filedatalake.DataLakeServiceClient |
get_directory_client |
获取要与指定目录交互的客户端。 该目录不需要已经存在。 |
get_file_client |
获取要与指定文件交互的客户端。 该文件不需要已经存在。 |
get_file_system_client |
获取客户端以与指定的文件系统交互。 文件系统不需要已经存在。 |
get_service_properties |
获取存储帐户的 datalake 服务的属性,包括 Azure 存储分析。 版本 12.4.0 中的新增功能:此操作是在 API 版本“2020-06-12”中引入的。 |
get_user_delegation_key |
获取用于对 SAS 令牌进行签名的用户委派密钥。 服务对象上必须存在令牌凭据,此请求才能成功。 |
list_file_systems |
返回一个生成器,用于列出指定帐户下的文件系统。 生成器将延迟跟踪服务返回的延续令牌,并在返回所有文件系统后停止。 |
set_service_properties |
设置存储帐户的 Datalake 服务(包括 Azure 存储分析)的属性。 版本 12.4.0 中的新增功能:此操作是在 API 版本“2020-06-12”中引入的。 如果元素 (例如,analytics_logging) 保留为 None,则保留该服务上针对该功能的现有设置。 |
undelete_file_system |
还原软删除的文件系统。 只有在删除保留策略中设置的指定天数内使用时,操作才会成功。 版本 12.3.0 中的新增功能:此操作是在 API 版本“2019-12-12”中引入的。 |
close
此方法用于关闭客户端打开的套接字。 与上下文管理器一起使用时,不需要使用它。
close() -> None
create_file_system
在指定的帐户下创建新的文件系统。
如果已存在同名的文件系统,则会引发 ResourceExistsError。 此方法返回与新创建的文件系统交互的客户端。
create_file_system(file_system: FileSystemProperties | str, metadata: Dict[str, str] | None = None, public_access: PublicAccess | None = None, **kwargs) -> FileSystemClient
参数
- encryption_scope_options
- dict 或 EncryptionScopeOptions
指定要在文件系统上设置的默认加密范围,并将其用于将来的所有写入。
版本 12.9.0 中的新增功能。
- timeout
- int
设置操作的服务器端超时时间(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处。
返回类型
示例
在 datalake 服务中创建文件系统。
datalake_service_client.create_file_system("filesystem")
delete_file_system
标记要删除的指定文件系统。
稍后,在垃圾回收期间,将删除文件系统及其中包含的任何文件。 如果未找到文件系统,将引发 ResourceNotFoundError。
delete_file_system(file_system: FileSystemProperties | str, **kwargs) -> FileSystemClient
参数
- lease
- DataLakeLeaseClient 或 str
如果指定,则仅当文件系统的租约处于活动状态且与此 ID 匹配时,delete_file_system才会成功。 如果文件系统具有活动租约,则是必需的。
- 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 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处。
返回类型
示例
删除 datalake 服务中的文件系统。
datalake_service_client.delete_file_system("filesystem")
from_connection_string
从连接字符串创建 DataLakeServiceClient。
:return a DataLakeServiceClient :rtype ~azure.storage.filedatalake.DataLakeServiceClient
from_connection_string(conn_str: str, credential: str | Dict[str, str] | AzureNamedKeyCredential | AzureSasCredential | TokenCredential | None = None, **kwargs: Any) -> Self
参数
- credential
用于进行身份验证的凭据。 如果帐户 URL 已有 SAS 令牌,或者连接字符串已具有共享访问密钥值,则这是可选的。 该值可以是 SAS 令牌字符串、azure.core.credentials 中的 AzureSasCredential 实例、帐户共享访问密钥或 azure.identity 中的 TokenCredentials 类的实例。 此处提供的凭据优先于连接字符串中的凭据。
示例
从连接字符串创建 DataLakeServiceClient。
from azure.storage.filedatalake import DataLakeServiceClient
datalake_service_client = DataLakeServiceClient.from_connection_string(self.connection_string)
get_directory_client
获取要与指定目录交互的客户端。
该目录不需要已经存在。
get_directory_client(file_system: FileSystemProperties | str, directory: DirectoryProperties | str) -> DataLakeDirectoryClient
参数
返回
DataLakeDirectoryClient。
返回类型
示例
让目录客户端与特定目录交互。
directory_client = datalake_service_client.get_directory_client(file_system_client.file_system_name,
"mydirectory")
get_file_client
获取要与指定文件交互的客户端。
该文件不需要已经存在。
get_file_client(file_system: FileSystemProperties | str, file_path: FileProperties | str) -> DataLakeFileClient
参数
- file_path
- str 或 FileProperties
要与之交互的文件。 这可以是从根目录) (的文件的完整路径,也可以是 FileProperties 的实例。例如directory/subdirectory/file
返回
DataLakeFileClient。
返回类型
示例
获取文件客户端以与特定文件交互。
file_client = datalake_service_client.get_file_client(file_system_client.file_system_name, "myfile")
get_file_system_client
获取客户端以与指定的文件系统交互。
文件系统不需要已经存在。
get_file_system_client(file_system: FileSystemProperties | str) -> FileSystemClient
参数
返回
FileSystemClient。
返回类型
示例
让文件系统客户端与特定文件系统交互。
# Instantiate a DataLakeServiceClient using a connection string
from azure.storage.filedatalake import DataLakeServiceClient
datalake_service_client = DataLakeServiceClient.from_connection_string(self.connection_string)
# Instantiate a FileSystemClient
file_system_client = datalake_service_client.get_file_system_client("mynewfilesystem")
get_service_properties
获取存储帐户的 datalake 服务的属性,包括 Azure 存储分析。
版本 12.4.0 中的新增功能:此操作是在 API 版本“2020-06-12”中引入的。
get_service_properties(**kwargs: Any) -> Dict[str, Any]
参数
- timeout
- int
设置操作的服务器端超时(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处。
返回
包含数据湖服务属性(例如分析日志记录、小时/分钟指标、cors 规则等)的 对象。
返回类型
get_user_delegation_key
获取用于对 SAS 令牌进行签名的用户委派密钥。 服务对象上必须存在令牌凭据,此请求才能成功。
get_user_delegation_key(key_start_time: datetime, key_expiry_time: datetime, **kwargs: Any) -> UserDelegationKey
参数
- timeout
- int
设置操作的服务器端超时(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处。
返回
用户委派密钥。
返回类型
示例
从 datalake 服务客户端获取用户委派密钥。
from datetime import datetime, timedelta
user_delegation_key = datalake_service_client.get_user_delegation_key(datetime.utcnow(),
datetime.utcnow() + timedelta(hours=1))
list_file_systems
返回一个生成器,用于列出指定帐户下的文件系统。
生成器将延迟跟踪服务返回的延续令牌,并在返回所有文件系统后停止。
list_file_systems(name_starts_with: str | None = None, include_metadata: bool | None = None, **kwargs) -> ItemPaged[FileSystemProperties]
参数
- results_per_page
- int
每个 API 调用要检索的最大文件系统名称数。 如果请求未指定,服务器将返回每页最多 5,000 个项目。
- timeout
- int
设置操作的服务器端超时(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处。
- include_deleted
- bool
指定要在响应中返回的已删除文件系统。 这适用于已启用文件系统还原的帐户。 默认值为 False。 .. versionadded:: 12.3.0
- include_system
- bool
指定应包含系统文件系统的标志。 .. versionadded:: 12.6.0
返回
FileSystemProperties 的可迭代 (自动分页) 。
返回类型
示例
列出 datalake 服务中的文件系统。
file_systems = datalake_service_client.list_file_systems()
for file_system in file_systems:
print(file_system.name)
set_service_properties
设置存储帐户的 Datalake 服务(包括 Azure 存储分析)的属性。
版本 12.4.0 中的新增功能:此操作是在 API 版本“2020-06-12”中引入的。
如果元素 (例如,analytics_logging) 保留为 None,则保留该服务上针对该功能的现有设置。
set_service_properties(**kwargs: Any) -> None
参数
- analytics_logging
对 Azure Analytics Logging 设置进行分组。
- hour_metrics
小时指标设置提供按 API 按小时聚合分组的请求统计信息的摘要。
- minute_metrics
分钟指标设置提供每分钟的请求统计信息。
- cors
列表中最多可以包含五个 CorsRule 元素。 如果指定了空列表,则将删除所有 CORS 规则,并且将禁用该服务的 CORS。
- target_version
- str
指示如果未指定传入请求的版本,则用于请求的默认版本。
- delete_retention_policy
删除保留策略指定是否保留已删除的文件/目录。 它还指定要保留的文件/目录的天数和版本。
- static_website
指定是否启用静态网站功能,如果是,则指示要使用的索引文档和 404 错误文档。
- timeout
- int
设置操作的服务器端超时(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处。
返回类型
undelete_file_system
还原软删除的文件系统。
只有在删除保留策略中设置的指定天数内使用时,操作才会成功。
版本 12.3.0 中的新增功能:此操作是在 API 版本“2019-12-12”中引入的。
undelete_file_system(name: str, deleted_version: str, **kwargs: Any) -> FileSystemClient
参数
- timeout
- int
设置操作的服务器端超时(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处。
返回
还原的 solft-deleted FileSystemClient。
返回类型
属性
api_version
用于请求的存储 API 的版本。
location_mode
客户端当前使用的位置模式。
默认情况下,此为“主要”。 选项包括“primary”和“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