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)

只有在使用 BEARER 權杖驗證 (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)

只有在使用 BEARER 權杖驗證 (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 }>