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

DataLakeServiceClient class

DataLakeServiceClient 允许你操作 Azure Data Lake 服务资源和文件系统。 存储帐户为 Data Lake 服务提供顶级命名空间。

Extends

StorageClient

构造函数

DataLakeServiceClient(string, Pipeline)

从 URL 和管道创建 DataLakeServiceClient 的实例。

DataLakeServiceClient(string, StorageSharedKeyCredential | AnonymousCredential | TokenCredential, StoragePipelineOptions)

从 URL 创建 DataLakeServiceClient 的实例。

继承属性

accountName
credential

例如 AnonymousCredential、StorageSharedKeyCredential 或包中 @azure/identity 用于对服务请求进行身份验证的任何凭据。 还可以提供实现 TokenCredential 接口的对象。 如果未指定,则使用 AnonymousCredential。

url

编码的 URL 字符串值。

方法

fromConnectionString(string, StoragePipelineOptions)

从连接字符串创建 DataLakeServiceClient 的实例。

generateAccountSasUrl(Date, AccountSASPermissions, string, ServiceGenerateAccountSasUrlOptions)

仅适用于使用共享密钥凭据构造的 DataLakeServiceClient。

根据传入的客户端属性和参数, (SAS) URI 生成帐户共享访问签名。 SAS 由客户端的共享密钥凭据签名。

请参见https://docs.microsoft.com/en-us/rest/api/storageservices/create-account-sas

getFileSystemClient(string)

创建 DataLakeFileSystemClient 对象。

getProperties(ServiceGetPropertiesOptions)

获取存储帐户的 Blob 服务终结点的属性,包括 存储分析 和 CORS (跨域资源共享) 规则的属性。

请参见https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob-service-properties

getUserDelegationKey(Date, Date, ServiceGetUserDelegationKeyOptions)

仅在使用持有者令牌身份验证 (TokenCredential) 时才可用。

检索 Data Lake 服务的用户委派密钥。 这仅在使用持有者令牌身份验证时有效。

示例

// Generate user delegation SAS for a file system
const userDelegationKey = await dataLakeServiceClient.getUserDelegationKey(startsOn, expiresOn);
const fileSystemSAS = generateDataLakeSASQueryParameters({
    fileSystemName, // Required
    permissions: FileSystemSASPermissions.parse("racwdl"), // Required
    startsOn, // Required. Date type
    expiresOn, // Optional. Date type
    ipRange: { start: "0.0.0.0", end: "255.255.255.255" }, // Optional
    protocol: SASProtocol.HttpsAndHttp, // Optional
    version: "2018-11-09" // Must greater than or equal to 2018-11-09 to generate user delegation SAS
  },
  userDelegationKey, // UserDelegationKey
  accountName
).toString();

请参见https://docs.microsoft.com/en-us/rest/api/storageservices/get-user-delegation-key

listFileSystems(ServiceListFileSystemsOptions)

返回一个异步可迭代器,用于列出指定帐户下的所有文件系统。

.byPage () 返回一个异步可迭代器,用于列出页面中的文件系统。

使用 for await 语法的示例:

let i = 1;
for await (const fileSystem of serviceClient.listFileSystems()) {
  console.log(`FileSystem ${i++}: ${fileSystem.name}`);
}

使用 iter.next() 的示例:

let i = 1;
const iter = serviceClient.listFileSystems();
let fileSystemItem = await iter.next();
while (!fileSystemItem.done) {
  console.log(`FileSystem ${i++}: ${fileSystemItem.value.name}`);
  fileSystemItem = await iter.next();
}

使用 byPage() 的示例:

// passing optional maxPageSize in the page settings
let i = 1;
for await (const response of serviceClient.listFileSystems().byPage({ maxPageSize: 20 })) {
  if (response.fileSystemItems) {
    for (const fileSystem of response.fileSystemItems) {
      console.log(`FileSystem ${i++}: ${fileSystem.name}`);
    }
  }
}

使用标记分页的示例:

let i = 1;
let iterator = serviceClient.listFileSystems().byPage({ maxPageSize: 2 });
let response = (await iterator.next()).value;

// Prints 2 file system names
if (response.fileSystemItems) {
  for (const fileSystem of response.fileSystemItems) {
    console.log(`FileSystem ${i++}: ${fileSystem.name}`);
  }
}

// Gets next marker
let marker = response.continuationToken;
// Passing next marker as continuationToken
iterator = serviceClient
  .listContainers()
  .byPage({ continuationToken: marker, maxPageSize: 10 });
response = (await iterator.next()).value;

// Prints 10 file system names
if (response.fileSystemItems) {
  for (const fileSystem of response.fileSystemItems) {
     console.log(`FileSystem ${i++}: ${fileSystem.name}`);
  }
}

请参见https://docs.microsoft.com/en-us/rest/api/storageservices/list-containers2

setProperties(BlobServiceProperties, ServiceSetPropertiesOptions)

设置存储帐户的 Blob 服务终结点的属性,包括存储分析、CORS (跨域资源共享) 规则和软删除设置的属性。

请参见https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-service-properties

undeleteFileSystem(string, string, ServiceUndeleteFileSystemOptions)

还原以前删除的文件系统。 仅当为存储帐户启用了容器软删除时,此 API 才起作用。

构造函数详细信息

DataLakeServiceClient(string, Pipeline)

从 URL 和管道创建 DataLakeServiceClient 的实例。

new DataLakeServiceClient(url: string, pipeline: Pipeline)

参数

url

string

指向 Azure 存储数据湖服务的客户端字符串,例如“https://myaccount.dfs.core.windows.net"”。 如果使用 AnonymousCredential,则可以追加 SAS,例如“https://myaccount.dfs.core.windows.net?sasString"”。

pipeline
Pipeline

调用 newPipeline () 以创建默认管道,或提供自定义管道。

DataLakeServiceClient(string, StorageSharedKeyCredential | AnonymousCredential | TokenCredential, StoragePipelineOptions)

从 URL 创建 DataLakeServiceClient 的实例。

new DataLakeServiceClient(url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)

参数

url

string

指向 Azure 存储数据湖服务的客户端字符串,例如“https://myaccount.dfs.core.windows.net"”。 如果使用 AnonymousCredential,则可以追加 SAS,例如“https://myaccount.dfs.core.windows.net?sasString"”。

credential

StorageSharedKeyCredential | AnonymousCredential | TokenCredential

例如 AnonymousCredential、StorageSharedKeyCredential 或包中 @azure/identity 用于对服务请求进行身份验证的任何凭据。 还可以提供实现 TokenCredential 接口的对象。 如果未指定,则使用 AnonymousCredential。

options
StoragePipelineOptions

可选。 用于配置 HTTP 管道的选项。

继承属性详细信息

accountName

accountName: string

属性值

string

继承自 StorageClient.accountName

credential

例如 AnonymousCredential、StorageSharedKeyCredential 或包中 @azure/identity 用于对服务请求进行身份验证的任何凭据。 还可以提供实现 TokenCredential 接口的对象。 如果未指定,则使用 AnonymousCredential。

credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential

属性值

继承自 StorageClient.credential

url

编码的 URL 字符串值。

url: string

属性值

string

继承自 StorageClient.url

方法详细信息

fromConnectionString(string, StoragePipelineOptions)

从连接字符串创建 DataLakeServiceClient 的实例。

static function fromConnectionString(connectionString: string, options?: StoragePipelineOptions): DataLakeServiceClient

参数

connectionString

string

Azure 存储帐户的帐户连接字符串或 SAS 连接字符串。 [ 注意 - 帐户连接字符串只能在NODE.JS运行时使用。 ] 帐户连接字符串示例 -DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=accountKey;EndpointSuffix=core.windows.net SAS 连接字符串示例 - BlobEndpoint=https://myaccount.blob.core.windows.net/;QueueEndpoint=https://myaccount.queue.core.windows.net/;FileEndpoint=https://myaccount.file.core.windows.net/;TableEndpoint=https://myaccount.table.core.windows.net/;SharedAccessSignature=sasString

options
StoragePipelineOptions

可选。 用于配置 HTTP 管道的选项。

返回

generateAccountSasUrl(Date, AccountSASPermissions, string, ServiceGenerateAccountSasUrlOptions)

仅适用于使用共享密钥凭据构造的 DataLakeServiceClient。

根据传入的客户端属性和参数, (SAS) URI 生成帐户共享访问签名。 SAS 由客户端的共享密钥凭据签名。

请参见https://docs.microsoft.com/en-us/rest/api/storageservices/create-account-sas

function generateAccountSasUrl(expiresOn?: Date, permissions?: AccountSASPermissions, resourceTypes?: string, options?: ServiceGenerateAccountSasUrlOptions): string

参数

expiresOn

Date

可选。 共享访问签名失效的时间。 如果未指定,则默认为一小时后。

permissions
AccountSASPermissions

指定要与 SAS 关联的权限列表。

resourceTypes

string

指定与共享访问签名关联的资源类型。

options
ServiceGenerateAccountSasUrlOptions

可选参数。

返回

string

帐户 SAS URI 由此客户端表示的资源的 URI 组成,后跟生成的 SAS 令牌。

getFileSystemClient(string)

创建 DataLakeFileSystemClient 对象。

function getFileSystemClient(fileSystemName: string): DataLakeFileSystemClient

参数

fileSystemName

string

文件系统名称。

返回

getProperties(ServiceGetPropertiesOptions)

获取存储帐户的 Blob 服务终结点的属性,包括 存储分析 和 CORS (跨域资源共享) 规则的属性。

请参见https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob-service-properties

function getProperties(options?: ServiceGetPropertiesOptions): Promise<ServiceGetPropertiesResponse>

参数

options
ServiceGetPropertiesOptions

服务获取属性操作的选项。

返回

服务获取属性操作的响应数据。

getUserDelegationKey(Date, Date, ServiceGetUserDelegationKeyOptions)

仅在使用持有者令牌身份验证 (TokenCredential) 时才可用。

检索 Data Lake 服务的用户委派密钥。 这仅在使用持有者令牌身份验证时有效。

示例

// Generate user delegation SAS for a file system
const userDelegationKey = await dataLakeServiceClient.getUserDelegationKey(startsOn, expiresOn);
const fileSystemSAS = generateDataLakeSASQueryParameters({
    fileSystemName, // Required
    permissions: FileSystemSASPermissions.parse("racwdl"), // Required
    startsOn, // Required. Date type
    expiresOn, // Optional. Date type
    ipRange: { start: "0.0.0.0", end: "255.255.255.255" }, // Optional
    protocol: SASProtocol.HttpsAndHttp, // Optional
    version: "2018-11-09" // Must greater than or equal to 2018-11-09 to generate user delegation SAS
  },
  userDelegationKey, // UserDelegationKey
  accountName
).toString();

请参见https://docs.microsoft.com/en-us/rest/api/storageservices/get-user-delegation-key

function getUserDelegationKey(startsOn: Date, expiresOn: Date, options?: ServiceGetUserDelegationKeyOptions): Promise<ServiceGetUserDelegationKeyResponse>

参数

startsOn

Date

用户委派 SAS 的开始时间。 必须在当前时间的 7 天内。

expiresOn

Date

用户委派 SAS 的结束时间。 必须在当前时间的 7 天内。

返回

listFileSystems(ServiceListFileSystemsOptions)

返回一个异步可迭代器,用于列出指定帐户下的所有文件系统。

.byPage () 返回一个异步可迭代器,用于列出页面中的文件系统。

使用 for await 语法的示例:

let i = 1;
for await (const fileSystem of serviceClient.listFileSystems()) {
  console.log(`FileSystem ${i++}: ${fileSystem.name}`);
}

使用 iter.next() 的示例:

let i = 1;
const iter = serviceClient.listFileSystems();
let fileSystemItem = await iter.next();
while (!fileSystemItem.done) {
  console.log(`FileSystem ${i++}: ${fileSystemItem.value.name}`);
  fileSystemItem = await iter.next();
}

使用 byPage() 的示例:

// passing optional maxPageSize in the page settings
let i = 1;
for await (const response of serviceClient.listFileSystems().byPage({ maxPageSize: 20 })) {
  if (response.fileSystemItems) {
    for (const fileSystem of response.fileSystemItems) {
      console.log(`FileSystem ${i++}: ${fileSystem.name}`);
    }
  }
}

使用标记分页的示例:

let i = 1;
let iterator = serviceClient.listFileSystems().byPage({ maxPageSize: 2 });
let response = (await iterator.next()).value;

// Prints 2 file system names
if (response.fileSystemItems) {
  for (const fileSystem of response.fileSystemItems) {
    console.log(`FileSystem ${i++}: ${fileSystem.name}`);
  }
}

// Gets next marker
let marker = response.continuationToken;
// Passing next marker as continuationToken
iterator = serviceClient
  .listContainers()
  .byPage({ continuationToken: marker, maxPageSize: 10 });
response = (await iterator.next()).value;

// Prints 10 file system names
if (response.fileSystemItems) {
  for (const fileSystem of response.fileSystemItems) {
     console.log(`FileSystem ${i++}: ${fileSystem.name}`);
  }
}

请参见https://docs.microsoft.com/en-us/rest/api/storageservices/list-containers2

function listFileSystems(options?: ServiceListFileSystemsOptions): PagedAsyncIterableIterator<FileSystemItem, ServiceListFileSystemsSegmentResponse, PageSettings>

参数

返回

setProperties(BlobServiceProperties, ServiceSetPropertiesOptions)

设置存储帐户的 Blob 服务终结点的属性,包括存储分析、CORS (跨域资源共享) 规则和软删除设置的属性。

请参见https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-service-properties

function setProperties(properties: BlobServiceProperties, options?: ServiceSetPropertiesOptions): Promise<ServiceSetPropertiesResponse>

参数

options
ServiceSetPropertiesOptions

服务集属性操作的选项。

返回

服务集属性操作的响应数据。

undeleteFileSystem(string, string, ServiceUndeleteFileSystemOptions)

还原以前删除的文件系统。 仅当为存储帐户启用了容器软删除时,此 API 才起作用。

function undeleteFileSystem(deletedFileSystemName: string, deleteFileSystemVersion: string, options?: ServiceUndeleteFileSystemOptions): Promise<{ fileSystemClient: DataLakeFileSystemClient, fileSystemUndeleteResponse: ContainerUndeleteResponse }>

参数

deletedFileSystemName

string

源文件系统的名称。

deleteFileSystemVersion

string

文件系统的新名称。

options
ServiceUndeleteFileSystemOptions

用于配置文件系统还原操作的选项。

返回

Promise<{ fileSystemClient: DataLakeFileSystemClient, fileSystemUndeleteResponse: ContainerUndeleteResponse }>