你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
AdlsClient 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
Azure Data Lake Store 的客户端。 它包含用于执行 REST API 操作的公共 API,这些 API 比核心 API 更易于调用且更可用。 核心 API 提供更多的自由度,但 ADLSClient 提供更常用的表单。 它封装了授权令牌和令牌刷新。 包含采用 ServiceClientCredential 或字符串身份验证令牌并返回此类实例的工厂方法。 对于每个操作,它都提供异步和同步版本。 每个同步方法都是对异步方法的等待,创建和并发追加除外。 所有 API 都是线程安全的,在 CreateFile 和 GetAppendStream 中存在一些例外情况。 无法针对不同线程的同一路径调用 CreateFile 和 GetAppendStream,因为编写是使用租约完成的,因此,如果应用程序想要使用此 SDK 执行多线程操作,强烈建议将 ServicePointManager.DefaultConnectionLimit 设置为应用程序希望在创建 AdlsClient 的任何实例之前使用 sdk 的线程数。 默认情况下,ServicePointManager.DefaultConnectionLimit 设置为 2。 Adls 使用 NLog 进行日志记录。 adls.dotnet.* 是用于获取所有日志的记录器的名称。
public class AdlsClient
type AdlsClient = class
Public Class AdlsClient
- 继承
-
AdlsClient
- 派生
构造函数
AdlsClient() |
Moq 测试的受保护构造函数 |
字段
ClientLogger |
记录器以记录有关客户端 (调试/错误/跟踪) 的信息 |
属性
AccountFQDN |
Azure data lake Store 帐户名称,包括完整域名 |
ClientId |
客户端对象 ID |
DefaultNumThreads |
上传/下载程序、递归 acl 更改和其他使用 SDK 的多线程工具使用的默认线程数。 如果希望 SDK 决定用于多线程工具的线程数,则可用于设置 ServicePointManager.DefaultConnectionLimit。 |
方法
AddUserAgentSuffix(String) |
添加用户代理后缀 |
BulkDownload(String, String, Int32, IfExists, Boolean, IProgress<TransferStatus>, Boolean, Boolean, CancellationToken) |
将目录或文件从远程服务器下载到本地。 传输目标目录下的源目录下的内容。 传输源文件并将其保存为目标路径。
此方法不会对任何条目的传输失败引发任何异常。 请参阅返回值 TransferStatus ,获取每个条目的传输状态/异常。
默认情况下,将传输进度记录在系统临时路径中,以便用户可以在上传失败时使用 |
BulkDownload(String, String, Int32, IfExists, IProgress<TransferStatus>, Boolean, Boolean, CancellationToken) |
将目录或文件从远程服务器下载到本地。 传输目标目录下的源目录下的内容。 传输源文件并将其保存为目标路径。 此方法不会对任何条目的传输失败引发任何异常。 请参阅返回值 TransferStatus ,获取每个条目的传输状态/异常。 强烈建议在创建 AdlsClient 的任何实例之前,将 ServicePointManager.DefaultConnectionLimit 设置为应用程序希望 sdk 使用的线程数。 默认情况下,ServicePointManager.DefaultConnectionLimit 设置为 2。 |
BulkUpload(String, String, Int32, IfExists, Boolean, IProgress<TransferStatus>, Boolean, Boolean, Boolean, CancellationToken) |
将目录或文件从本地上传到远程。 传输目标目录下的源目录下的内容。 传输源文件并将其保存为目标路径。
此方法不会对任何条目的传输失败引发任何异常。 请参阅返回值 TransferStatus ,获取每个条目的传输状态/异常。
默认情况下,将传输进度记录在系统临时路径中,以便用户可以在上传失败时使用 |
BulkUpload(String, String, Int32, IfExists, IProgress<TransferStatus>, Boolean, Boolean, Boolean, CancellationToken) |
将目录或文件从本地上传到远程。 传输目标目录下的源目录下的内容。 传输源文件并将其保存为目标路径。
此方法不会对任何条目的传输失败引发任何异常。 请参阅返回值 TransferStatus ,获取每个条目的传输状态/异常。
强烈建议在创建 AdlsClient 的任何实例之前,将 ServicePointManager.DefaultConnectionLimit 设置为应用程序希望 sdk 使用的线程数。
默认情况下,ServicePointManager.DefaultConnectionLimit 设置为 2。
默认情况下,文件在新的线边界上传。 但是,如果文件在 4MB 区块内没有换行符,则传输将失败。 在这种情况下,需要将 true |
ChangeAcl(String, List<AclEntry>, RequestedAclType, Int32) |
更改 Acl (在目录树上以递归方式修改、设置和删除) 强烈建议将 ServicePointManager.DefaultConnectionLimit 设置为应用程序希望在创建 AdlsClient 的任何实例之前使用的线程数。 默认情况下,ServicePointManager.DefaultConnectionLimit 设置为 2。 |
ChangeAcl(String, List<AclEntry>, RequestedAclType, Int32, IProgress<AclProcessorStats>, CancellationToken) |
更改 Acl (在目录树上以递归方式修改、设置和删除) 强烈建议将 ServicePointManager.DefaultConnectionLimit 设置为应用程序希望在创建 AdlsClient 的任何实例之前使用的线程数。 默认情况下,ServicePointManager.DefaultConnectionLimit 设置为 2。 |
CheckAccess(String, String, CancellationToken) |
检查用户/组是否具有给定路径的指定访问权限 |
CheckAccessAsync(String, String, CancellationToken) |
异步检查用户/组是否具有给定路径的指定访问权限 |
CheckExists(String) |
检查文件或目录是否存在 |
ConcatenateFiles(String, List<String>, Boolean, CancellationToken) |
同步 API,用于将源文件连接到目标文件 |
ConcatenateFilesAsync(String, List<String>, Boolean, CancellationToken) |
用于将源文件连接到目标文件的异步 API |
ConcurrentAppend(String, Boolean, Byte[], Int32, Int32) |
同步 API,用于在服务器上执行并发追加。 发生追加的偏移量由服务器确定。 强烈建议调用数据大小小于 4MB 的此 API。 后端 gurantees 4MB 原子追加。 |
ConcurrentAppendAsync(String, Boolean, Byte[], Int32, Int32, CancellationToken) |
用于在服务器上执行并发追加的异步 API。 发生追加的偏移量由服务器确定。 异步操作。 强烈建议调用数据大小小于 4MB 的此 API。 后端 gurantees 4MB 原子追加。 |
CreateClient(String, ServiceClientCredentials) |
使用 ServiceClientCredential 创建 AdlsClient 实例的工厂方法。 如果应用程序想要使用此 SDK 执行多线程操作,强烈建议在创建 AdlsClient 的任何实例之前,将 ServicePointManager.DefaultConnectionLimit 设置为应用程序希望 sdk 使用的线程数。 默认情况下,ServicePointManager.DefaultConnectionLimit 设置为 2。 |
CreateClient(String, ServiceClientCredentials, DelegatingHandler[]) |
使用 ServiceClientCredential 创建 AdlsClient 实例的工厂方法。 如果应用程序想要使用此 SDK 执行多线程操作,强烈建议在创建 AdlsClient 的任何实例之前,将 ServicePointManager.DefaultConnectionLimit 设置为应用程序希望 sdk 使用的线程数。 默认情况下,ServicePointManager.DefaultConnectionLimit 设置为 2。 |
CreateClient(String, ServiceClientCredentials, Int32) |
使用 ServiceClientCredential 创建 AdlsClient 实例的工厂方法。 如果应用程序想要使用此 SDK 执行多线程操作,强烈建议在创建 AdlsClient 的任何实例之前,将 ServicePointManager.DefaultConnectionLimit 设置为应用程序希望 sdk 使用的线程数。 默认情况下,ServicePointManager.DefaultConnectionLimit 设置为 2。 |
CreateClient(String, ServiceClientCredentials, Int32, DelegatingHandler[]) |
使用 ServiceClientCredential 创建 AdlsClient 实例的工厂方法。 如果应用程序想要使用此 SDK 执行多线程操作,强烈建议在创建 AdlsClient 的任何实例之前,将 ServicePointManager.DefaultConnectionLimit 设置为应用程序希望 sdk 使用的线程数。 默认情况下,ServicePointManager.DefaultConnectionLimit 设置为 2。 |
CreateClient(String, String) |
使用令牌密钥创建实例 AdlsClient 的工厂方法。 如果应用程序想要使用此 SDK 执行多线程操作,强烈建议在创建 AdlsClient 的任何实例之前,将 ServicePointManager.DefaultConnectionLimit 设置为应用程序希望 sdk 使用的线程数。 默认情况下,ServicePointManager.DefaultConnectionLimit 设置为 2。 |
CreateClient(String, String, Int32) |
使用令牌密钥创建实例 AdlsClient 的工厂方法。 如果应用程序想要使用此 SDK 执行多线程操作,强烈建议在创建 AdlsClient 的任何实例之前,将 ServicePointManager.DefaultConnectionLimit 设置为应用程序希望 SDK 使用的线程数。 默认情况下,ServicePointManager.DefaultConnectionLimit 设置为 2。 |
CreateDelegatingHandler(HttpClientHandler, DelegatingHandler[]) |
基于 Microsoft.Rest.ServiceCLient 实现。 用于模拟框架委派处理程序的 USed |
CreateDirectory(String, String, CancellationToken) |
用于创建目录的同步 API |
CreateDirectoryAsync(String, String, CancellationToken) |
用于创建目录的异步 API。 |
CreateFile(String, IfExists, String, Boolean) |
创建文件并返回流以将数据写入 ADLS 中的该文件的同步 API。 该文件以独占访问权限打开 - 打开此流时,任何打开同一个文件进行追加的尝试都将失败。 线程处理:返回的流不是线程安全的。 |
CreateFileAsync(String, IfExists, String, Boolean, CancellationToken) |
异步 API,用于创建文件并返回流以将数据写入 ADLS 中的该文件。 该文件以独占访问权限打开 - 打开此流时,任何打开同一个文件进行追加的尝试都将失败。 线程处理:返回的流不是线程安全的。 |
Delete(String, CancellationToken) |
用于删除文件或目录的同步 API。 对于目录,仅当目录为空时,才会将其删除。 |
DeleteAsync(String, CancellationToken) |
用于删除文件或目录的异步 API。 对于目录,仅当目录为空时,才会将其删除。 |
DeleteRecursive(String, CancellationToken) |
同步 API,用于以递归方式删除文件或目录。 如果它是非空目录,则删除子目录或文件。 |
DeleteRecursiveAsync(String, CancellationToken) |
异步 API,用于以递归方式删除文件或目录 |
EnumerateDeletedItems(String, String, Int32, IProgress<EnumerateDeletedItemsProgress>, CancellationToken) |
使用提示和起点在帐户下搜索回收站。 这是一个长时间运行的操作,用户会定期更新进度。 警告:取消删除文件是尽力而为的操作。 无法保证文件在删除后可以还原。 通过允许列表启用此 API 的使用。 如果 ADL 帐户未列入允许列表,则使用此 API 将引发“未实现”异常。 如需进一步的信息和帮助,请联系 Microsoft 支持部门。 |
EnumerateDeletedItemsAsync(String, String, Int32, IProgress<EnumerateDeletedItemsProgress>, CancellationToken) |
异步获取回收站条目 警告:取消删除文件是尽力而为的操作。 无法保证文件在删除后可以还原。 通过允许列表启用此 API 的使用。 如果 ADL 帐户未列入允许列表,则使用此 API 将引发“未实现”异常。 如需进一步的信息和帮助,请联系 Microsoft 支持部门。 |
EnumerateDirectory(String, UserGroupRepresentation, CancellationToken) |
返回枚举枚举目录中包含的子目录或文件。 默认情况下,listAfter 和 listBefore 为空,我们将枚举所有目录条目。 |
GetAclStatus(String, UserGroupRepresentation, CancellationToken) |
仅获取文件/目录的目录) 的 ACL 条目列表、所有者 ID、组 ID、八进制权限和粘滞位 ( |
GetAclStatusAsync(String, UserGroupRepresentation, CancellationToken) |
仅针对文件/目录的目录) 异步获取 ACL 条目列表、所有者 ID、组 ID、八进制权限和粘滞位 ( |
GetAppendStream(String, CancellationToken) |
返回流以将数据写入 ADLS 中的文件的同步 API。 该文件以独占访问权限打开 - 打开此流时,任何打开同一个文件进行追加的尝试都将失败。 线程处理:返回的流不是线程安全的。 |
GetAppendStreamAsync(String, CancellationToken) |
异步 API,用于返回流以将数据写入 ADLS 中的文件。 该文件以独占访问权限打开 - 打开此流时,任何打开同一个文件进行追加的尝试都将失败。 线程处理:返回的流不是线程安全的。 |
GetContentSummary(String, Int32, CancellationToken) |
获取文件或目录的内容摘要。 强烈建议在创建 AdlsClient 的任何实例之前,将 ServicePointManager.DefaultConnectionLimit 设置为应用程序希望 SDK 使用的线程数。 默认情况下,ServicePointManager.DefaultConnectionLimit 设置为 2。 |
GetDirectoryEntry(String, UserGroupRepresentation, CancellationToken) |
同步获取元数据,例如完整路径、类型 (文件或目录) 、组、用户、权限、长度、上次访问时间、上次修改时间、到期时间、acl 位、复制因子 |
GetDirectoryEntryAsync(String, UserGroupRepresentation, CancellationToken) |
异步获取元数据,例如完整路径、类型 (文件或目录) 、组、用户、权限、长度、上次访问时间、上次修改时间、到期时间、acl 位、复制因子 |
GetExceptionFromResponse(OperationResponse, String) |
根据服务器的响应返回 ADLS 异常 |
GetFileProperties(String, Boolean, String, Boolean, Boolean, Int32, Boolean, Boolean, Int64, CancellationToken) |
以递归方式转储本地或 adl 文件的给定路径下的所有目录或/和文件的文件属性。 文件属性可以是磁盘使用情况或 Acl,也可以是两者兼有。 强烈建议在创建 AdlsClient 的任何实例之前,将 ServicePointManager.DefaultConnectionLimit 设置为应用程序希望 SDK 使用的线程数。 默认情况下,ServicePointManager.DefaultConnectionLimit 设置为 2。 |
GetHttpClientForCert() |
此方法需要通过继承类来替代,以提供重用 httclient 的理想解决方案。 继承类必须释放以前的 httpclient,然后获取新的 httpclient |
GetReadStream(String, CancellationToken) |
返回流以从 ADLS 中的文件读取数据的同步 API |
GetReadStream(String, Int32, CancellationToken) |
返回流以从 ADLS 中的文件读取数据的同步 API |
GetReadStreamAsync(String, CancellationToken) |
返回流以从 ADLS 中的文件读取数据的异步 API |
GetReadStreamAsync(String, Int32, CancellationToken) |
返回流以从 ADLS 中的文件读取数据的异步 API |
ModifyAclEntries(String, List<AclEntry>, CancellationToken) |
使用给定的 ACL 列表修改文件或目录的 acl 条目。 它将当前 ACL 列表与给定列表合并。 |
ModifyAclEntriesAsync(String, List<AclEntry>, CancellationToken) |
使用给定的 ACL 列表异步修改文件或目录的 acl 条目。 它将当前 ACL 列表与给定列表合并。 |
RemoveAclEntries(String, List<AclEntry>, CancellationToken) |
删除文件或目录的指定 Acl 条目。 |
RemoveAclEntriesAsync(String, List<AclEntry>, CancellationToken) |
异步删除文件或目录的指定 Acl 条目。 |
RemoveAllAcls(String, CancellationToken) |
删除文件或目录的所有 Acl 条目。 |
RemoveAllAclsAsync(String, CancellationToken) |
异步删除文件或目录的所有 Acl 条目。 |
RemoveDefaultAcls(String, CancellationToken) |
删除文件或目录的 AclScope 默认值的所有 Acl 条目。 |
RemoveDefaultAclsAsync(String, CancellationToken) |
异步删除文件或目录的 AclScope 默认值的所有 Acl 条目。 |
Rename(String, String, Boolean, CancellationToken) |
用于重命名文件或目录的同步 API。 对于重命名目录:如果目标存在,则会将源目录置于目标下的一个级别。 |
RenameAsync(String, String, Boolean, CancellationToken) |
用于重命名文件或目录的异步 API。 对于重命名目录:如果目标存在,则会将源目录置于目标下的一个级别。 |
RestoreDeletedItems(String, String, String, String, CancellationToken) |
同步还原回收站条目警告:取消删除文件是尽力而为的操作。 无法保证文件在删除后可以还原。 通过允许列表启用此 API 的使用。 如果 ADL 帐户未列入允许列表,则使用此 API 将引发“未实现”异常。 如需进一步的信息和帮助,请联系 Microsoft 支持部门。 |
RestoreDeletedItemsAsync(String, String, String, String, CancellationToken) |
异步还原回收站条目警告:取消删除文件是尽力而为的操作。 无法保证文件在删除后可以还原。 通过允许列表启用此 API 的使用。 如果 ADL 帐户未列入允许列表,则使用此 API 将引发“未实现”异常。 如需进一步的信息和帮助,请联系 Microsoft 支持部门。 |
SetAcl(String, List<AclEntry>, CancellationToken) |
设置文件或目录的 Acl 条目。 它会擦除路径的现有 Acl 条目。 |
SetAclAsync(String, List<AclEntry>, CancellationToken) |
异步设置文件或目录的 Acl 条目。 它会擦除路径的现有 Acl 条目。 |
SetConditionalCreateWithOverwrite(Boolean) |
设置是否使用覆盖执行条件创建。 帮助解决重试的原子问题 |
SetExpiryTime(String, ExpiryOption, Int64, CancellationToken) |
同步设置到期时间 |
SetExpiryTimeAsync(String, ExpiryOption, Int64, CancellationToken) |
异步设置到期时间 |
SetOwner(String, String, String, CancellationToken) |
设置路径的所有者或/和组 |
SetOwnerAsync(String, String, String, CancellationToken) |
异步设置路径的所有者或/和组 |
SetPermission(String, String, CancellationToken) |
设置指定路径的权限 |
SetPermissionAsync(String, String, CancellationToken) |
异步设置指定路径的权限 |
SetPerRequestTimeout(TimeSpan) |
设置每个请求超时。 强烈建议在创建客户端后设置它。 当请求来自其他线程时,不建议设置它。 |
SetToken(String) |
设置身份验证令牌。 |