共用方式為


ContainerClient class

ContainerClient 代表 Azure 記憶體容器的 URL,可讓您操作其 Blob。

Extends

StorageClient

建構函式

ContainerClient(string, PipelineLike)

建立 ContainerClient 的實例。 此方法接受指向容器的 URL。 編碼的 URL 字串不會逸出兩次,只會逸出 URL 路徑中的特殊字元。 如果 Blob 名稱包含 ? 或 %,Blob 名稱必須在 URL 中編碼。

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

建立 ContainerClient 的實例。 此方法接受指向容器的 URL。 編碼的 URL 字串不會逸出兩次,只會逸出 URL 路徑中的特殊字元。 如果 Blob 名稱包含 ? 或 %,Blob 名稱必須在 URL 中編碼。

ContainerClient(string, string, StoragePipelineOptions)

建立 ContainerClient 的實例。

屬性

containerName

容器的名稱。

繼承的屬性

accountName
credential

例如 AnonymousCredential、StorageSharedKeyCredential 或任何來自 @azure/identity 套件的認證,以驗證對服務的要求。 您也可以提供實作 TokenCredential 介面的物件。 如果未指定,則會使用 AnonymousCredential。

url

編碼的 URL 字串值。

方法

create(ContainerCreateOptions)

在指定的帳戶下建立新的容器。 如果已有相同名稱的容器存在,則作業會失敗。

請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/create-container 命名規則:請參閱 https://learn.microsoft.com/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata

createIfNotExists(ContainerCreateOptions)

在指定的帳戶下建立新的容器。 如果已有相同名稱的容器存在,則不會變更。

請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/create-container 命名規則:請參閱 https://learn.microsoft.com/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata

delete(ContainerDeleteMethodOptions)

標記要刪除的指定容器。 容器及其內含的任何 Blob 稍後會在垃圾收集期間刪除。

請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/delete-container

deleteBlob(string, ContainerDeleteBlobOptions)

標示要刪除的指定 Blob 或快照集。 Blob 稍後會在垃圾收集期間刪除。 請注意,若要刪除 Blob,您必須刪除其所有快照集。 您可以使用刪除 Blob 作業同時刪除兩者。

請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/delete-blob

deleteIfExists(ContainerDeleteMethodOptions)

如果指定的容器存在,則標記要刪除的容器。 容器及其內含的任何 Blob 稍後會在垃圾收集期間刪除。

請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/delete-container

exists(ContainerExistsOptions)

如果此用戶端所代表的 Azure 容器資源存在,則傳回 true;否則為 false。

注意:請小心使用此函式,因為其他用戶端或應用程式可能會刪除現有的容器。 反之亦然,具有相同名稱的新容器可能會在此函式完成之後由其他用戶端或應用程式新增。

findBlobsByTags(string, ContainerFindBlobByTagsOptions)

傳回異步反覆運算器,以在指定的容器下尋找具有指定標籤的所有 Blob。

.byPage() 會傳回異步可迭代反覆運算器,以列出分頁中的 Blob。

使用 for await 語法的範例:

let i = 1;
for await (const blob of containerClient.findBlobsByTags("tagkey='tagvalue'")) {
  console.log(`Blob ${i++}: ${blob.name}`);
}

使用 iter.next()的範例:

let i = 1;
const iter = containerClient.findBlobsByTags("tagkey='tagvalue'");
let blobItem = await iter.next();
while (!blobItem.done) {
  console.log(`Blob ${i++}: ${blobItem.value.name}`);
  blobItem = await iter.next();
}

使用 byPage()的範例:

// passing optional maxPageSize in the page settings
let i = 1;
for await (const response of containerClient.findBlobsByTags("tagkey='tagvalue'").byPage({ maxPageSize: 20 })) {
  if (response.blobs) {
    for (const blob of response.blobs) {
      console.log(`Blob ${i++}: ${blob.name}`);
    }
  }
}

使用分頁搭配標記的範例:

let i = 1;
let iterator = containerClient.findBlobsByTags("tagkey='tagvalue'").byPage({ maxPageSize: 2 });
let response = (await iterator.next()).value;

// Prints 2 blob names
if (response.blobs) {
  for (const blob of response.blobs) {
    console.log(`Blob ${i++}: ${blob.name}`);
  }
}

// Gets next marker
let marker = response.continuationToken;
// Passing next marker as continuationToken
iterator = containerClient
  .findBlobsByTags("tagkey='tagvalue'")
  .byPage({ continuationToken: marker, maxPageSize: 10 });
response = (await iterator.next()).value;

// Prints blob names
if (response.blobs) {
  for (const blob of response.blobs) {
     console.log(`Blob ${i++}: ${blob.name}`);
  }
}
generateSasUrl(ContainerGenerateSasUrlOptions)

僅適用於使用共用密鑰認證建構的 ContainerClient。

根據傳入的用戶端屬性和參數,產生 Blob 容器服務共用存取簽章 (SAS) URI。 SAS 是由客戶端的共用金鑰認證所簽署。

請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas

getAccessPolicy(ContainerGetAccessPolicyOptions)

取得指定容器的許可權。 許可權會指出是否可以公開存取容器數據。

警告:剖析 startOn 和 expiresOn 字串時,JavaScript 日期可能會失去精確度。 例如,新的 Date(“2018-12-31T03:44:23.8827891Z”)將會取得 “2018-12-31T03:44:23.882Z”。

請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/get-container-acl

getAccountInfo(ContainerGetAccountInfoOptions)

取得帳戶資訊作業會傳回指定帳戶的 SKU 名稱和帳戶種類。 從 2018-03-28 版開始的服務版本,即可取得帳戶資訊作業。

請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/get-account-information

getAppendBlobClient(string)

建立 AppendBlobClient

getBlobBatchClient()

建立 BlobBatchClient 物件來執行批次作業。

請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch

getBlobClient(string)

建立 BlobClient

getBlobLeaseClient(string)

取得管理容器租用的 BlobLeaseClient

getBlockBlobClient(string)

建立 BlockBlobClient

getPageBlobClient(string)

建立 PageBlobClient

getProperties(ContainerGetPropertiesOptions)

傳回指定容器的所有使用者定義元數據和系統屬性。 傳回的數據不包含容器的 Blob 清單。

請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/get-container-properties

警告:回應中傳回的 metadata 物件會以小寫表示,即使它們原本包含大寫字元也一樣。 這與使用 includeMetadata 選項 BlobServiceCl ient listContainers 方法所傳回的元數據索引鍵不同,這會保留其原始大小寫。

listBlobsByHierarchy(string, ContainerListBlobsOptions)

傳回異步可反覆運算迭代器,依階層列出所有 Blob。 在指定的帳戶下。

.byPage() 會傳回可同步反覆運算器,以依頁面階層列出 Blob。

使用 for await 語法的範例:

for await (const item of containerClient.listBlobsByHierarchy("/")) {
  if (item.kind === "prefix") {
    console.log(`\tBlobPrefix: ${item.name}`);
  } else {
    console.log(`\tBlobItem: name - ${item.name}`);
  }
}

使用 iter.next()的範例:

let iter = containerClient.listBlobsByHierarchy("/", { prefix: "prefix1/" });
let entity = await iter.next();
while (!entity.done) {
  let item = entity.value;
  if (item.kind === "prefix") {
    console.log(`\tBlobPrefix: ${item.name}`);
  } else {
    console.log(`\tBlobItem: name - ${item.name}`);
  }
  entity = await iter.next();
}

使用 byPage()的範例:

console.log("Listing blobs by hierarchy by page");
for await (const response of containerClient.listBlobsByHierarchy("/").byPage()) {
  const segment = response.segment;
  if (segment.blobPrefixes) {
    for (const prefix of segment.blobPrefixes) {
      console.log(`\tBlobPrefix: ${prefix.name}`);
    }
  }
  for (const blob of response.segment.blobItems) {
    console.log(`\tBlobItem: name - ${blob.name}`);
  }
}

使用頁面大小上限的分頁範例:

console.log("Listing blobs by hierarchy by page, specifying a prefix and a max page size");

let i = 1;
for await (const response of containerClient
  .listBlobsByHierarchy("/", { prefix: "prefix2/sub1/" })
  .byPage({ maxPageSize: 2 })) {
  console.log(`Page ${i++}`);
  const segment = response.segment;

  if (segment.blobPrefixes) {
    for (const prefix of segment.blobPrefixes) {
      console.log(`\tBlobPrefix: ${prefix.name}`);
    }
  }

  for (const blob of response.segment.blobItems) {
    console.log(`\tBlobItem: name - ${blob.name}`);
  }
}
listBlobsFlat(ContainerListBlobsOptions)

傳回異步反覆運算器,以列出指定帳戶下的所有 Blob。

.byPage() 會傳回異步可迭代反覆運算器,以列出分頁中的 Blob。

使用 for await 語法的範例:

// Get the containerClient before you run these snippets,
// Can be obtained from `blobServiceClient.getContainerClient("<your-container-name>");`
let i = 1;
for await (const blob of containerClient.listBlobsFlat()) {
  console.log(`Blob ${i++}: ${blob.name}`);
}

使用 iter.next()的範例:

let i = 1;
let iter = containerClient.listBlobsFlat();
let blobItem = await iter.next();
while (!blobItem.done) {
  console.log(`Blob ${i++}: ${blobItem.value.name}`);
  blobItem = await iter.next();
}

使用 byPage()的範例:

// passing optional maxPageSize in the page settings
let i = 1;
for await (const response of containerClient.listBlobsFlat().byPage({ maxPageSize: 20 })) {
  for (const blob of response.segment.blobItems) {
    console.log(`Blob ${i++}: ${blob.name}`);
  }
}

使用分頁搭配標記的範例:

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

// Prints 2 blob names
for (const blob of response.segment.blobItems) {
  console.log(`Blob ${i++}: ${blob.name}`);
}

// Gets next marker
let marker = response.continuationToken;

// Passing next marker as continuationToken

iterator = containerClient.listBlobsFlat().byPage({ continuationToken: marker, maxPageSize: 10 });
response = (await iterator.next()).value;

// Prints 10 blob names
for (const blob of response.segment.blobItems) {
  console.log(`Blob ${i++}: ${blob.name}`);
}
setAccessPolicy(PublicAccessType, SignedIdentifier[], ContainerSetAccessPolicyOptions)

設定指定容器的許可權。 許可權會指出容器中的 Blob 是否可以公開存取。

當您設定容器的許可權時,會取代現有的許可權。 如果未提供任何存取權或 containerAcl,則會移除現有的容器 ACL。

當您在容器上建立預存存取原則時,最多可能需要 30 秒才會生效。 在此間隔期間,與預存存取原則相關聯的共用存取簽章將會失敗,狀態代碼為 403(禁止),直到存取原則變成作用中為止。

請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/set-container-acl

setMetadata(Metadata, ContainerSetMetadataOptions)

設定指定容器的一或多個使用者定義名稱/值組。

如果未提供任何選項,或參數中未定義任何元數據,則會移除容器元數據。

請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/set-container-metadata

uploadBlockBlob(string, RequestBodyType, number, BlockBlobUploadOptions)

建立新的區塊 Blob,或更新現有區塊 Blob 的內容。

更新現有的區塊 Blob 會覆寫 Blob 上任何現有的元數據。 不支援部分更新;現有 Blob 的內容會以新內容覆寫。 若要執行區塊 Blob 的部分更新,請使用 stageBlockcommitBlockList

這是非平行上傳方法,請使用 uploadFileuploadStreamuploadBrowserData,以取得並行上傳的更佳效能。

請參閱 https://docs.microsoft.com/rest/api/storageservices/put-blob

建構函式詳細資料

ContainerClient(string, PipelineLike)

建立 ContainerClient 的實例。 此方法接受指向容器的 URL。 編碼的 URL 字串不會逸出兩次,只會逸出 URL 路徑中的特殊字元。 如果 Blob 名稱包含 ? 或 %,Blob 名稱必須在 URL 中編碼。

new ContainerClient(url: string, pipeline: PipelineLike)

參數

url

string

指向 Azure 記憶體容器的 URL 字串,例如 「https://myaccount.blob.core.windows.net/mycontainer"。 如果使用 AnonymousCredential,則可以附加 SAS,例如 “https://myaccount.blob.core.windows.net/mycontainer?sasString"。

pipeline
PipelineLike

呼叫 newPipeline() 以建立預設管線,或提供自定義管線。

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

建立 ContainerClient 的實例。 此方法接受指向容器的 URL。 編碼的 URL 字串不會逸出兩次,只會逸出 URL 路徑中的特殊字元。 如果 Blob 名稱包含 ? 或 %,Blob 名稱必須在 URL 中編碼。

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

參數

url

string

指向 Azure 記憶體容器的 URL 字串,例如 「https://myaccount.blob.core.windows.net/mycontainer"。 如果使用 AnonymousCredential,則可以附加 SAS,例如 “https://myaccount.blob.core.windows.net/mycontainer?sasString"。

credential

StorageSharedKeyCredential | AnonymousCredential | TokenCredential

例如 AnonymousCredential、StorageSharedKeyCredential 或任何來自 @azure/identity 套件的認證,以驗證對服務的要求。 您也可以提供實作 TokenCredential 介面的物件。 如果未指定,則會使用 AnonymousCredential。

options
StoragePipelineOptions

自選。 設定 HTTP 管線的選項。

ContainerClient(string, string, StoragePipelineOptions)

建立 ContainerClient 的實例。

new ContainerClient(connectionString: string, containerName: string, options?: StoragePipelineOptions)

參數

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

containerName

string

容器名稱。

options
StoragePipelineOptions

自選。 設定 HTTP 管線的選項。

屬性詳細資料

containerName

容器的名稱。

string containerName

屬性值

string

繼承的屬性詳細資料

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

方法詳細資料

create(ContainerCreateOptions)

在指定的帳戶下建立新的容器。 如果已有相同名稱的容器存在,則作業會失敗。

請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/create-container 命名規則:請參閱 https://learn.microsoft.com/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata

function create(options?: ContainerCreateOptions): Promise<ContainerCreateResponse>

參數

options
ContainerCreateOptions

容器建立作業的選項。

範例用法:

const containerClient = blobServiceClient.getContainerClient("<container name>");
const createContainerResponse = await containerClient.create();
console.log("Container was created successfully", createContainerResponse.requestId);

傳回

createIfNotExists(ContainerCreateOptions)

在指定的帳戶下建立新的容器。 如果已有相同名稱的容器存在,則不會變更。

請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/create-container 命名規則:請參閱 https://learn.microsoft.com/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata

function createIfNotExists(options?: ContainerCreateOptions): Promise<ContainerCreateIfNotExistsResponse>

參數

傳回

delete(ContainerDeleteMethodOptions)

標記要刪除的指定容器。 容器及其內含的任何 Blob 稍後會在垃圾收集期間刪除。

請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/delete-container

function delete(options?: ContainerDeleteMethodOptions): Promise<ContainerDeleteResponse>

參數

options
ContainerDeleteMethodOptions

容器刪除作業的選項。

傳回

deleteBlob(string, ContainerDeleteBlobOptions)

標示要刪除的指定 Blob 或快照集。 Blob 稍後會在垃圾收集期間刪除。 請注意,若要刪除 Blob,您必須刪除其所有快照集。 您可以使用刪除 Blob 作業同時刪除兩者。

請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/delete-blob

function deleteBlob(blobName: string, options?: ContainerDeleteBlobOptions): Promise<BlobDeleteResponse>

參數

blobName

string

options
ContainerDeleteBlobOptions

Blob 刪除作業的選項。

傳回

封鎖 Blob 刪除響應數據。

deleteIfExists(ContainerDeleteMethodOptions)

如果指定的容器存在,則標記要刪除的容器。 容器及其內含的任何 Blob 稍後會在垃圾收集期間刪除。

請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/delete-container

function deleteIfExists(options?: ContainerDeleteMethodOptions): Promise<ContainerDeleteIfExistsResponse>

參數

options
ContainerDeleteMethodOptions

容器刪除作業的選項。

傳回

exists(ContainerExistsOptions)

如果此用戶端所代表的 Azure 容器資源存在,則傳回 true;否則為 false。

注意:請小心使用此函式,因為其他用戶端或應用程式可能會刪除現有的容器。 反之亦然,具有相同名稱的新容器可能會在此函式完成之後由其他用戶端或應用程式新增。

function exists(options?: ContainerExistsOptions): Promise<boolean>

參數

傳回

Promise<boolean>

findBlobsByTags(string, ContainerFindBlobByTagsOptions)

傳回異步反覆運算器,以在指定的容器下尋找具有指定標籤的所有 Blob。

.byPage() 會傳回異步可迭代反覆運算器,以列出分頁中的 Blob。

使用 for await 語法的範例:

let i = 1;
for await (const blob of containerClient.findBlobsByTags("tagkey='tagvalue'")) {
  console.log(`Blob ${i++}: ${blob.name}`);
}

使用 iter.next()的範例:

let i = 1;
const iter = containerClient.findBlobsByTags("tagkey='tagvalue'");
let blobItem = await iter.next();
while (!blobItem.done) {
  console.log(`Blob ${i++}: ${blobItem.value.name}`);
  blobItem = await iter.next();
}

使用 byPage()的範例:

// passing optional maxPageSize in the page settings
let i = 1;
for await (const response of containerClient.findBlobsByTags("tagkey='tagvalue'").byPage({ maxPageSize: 20 })) {
  if (response.blobs) {
    for (const blob of response.blobs) {
      console.log(`Blob ${i++}: ${blob.name}`);
    }
  }
}

使用分頁搭配標記的範例:

let i = 1;
let iterator = containerClient.findBlobsByTags("tagkey='tagvalue'").byPage({ maxPageSize: 2 });
let response = (await iterator.next()).value;

// Prints 2 blob names
if (response.blobs) {
  for (const blob of response.blobs) {
    console.log(`Blob ${i++}: ${blob.name}`);
  }
}

// Gets next marker
let marker = response.continuationToken;
// Passing next marker as continuationToken
iterator = containerClient
  .findBlobsByTags("tagkey='tagvalue'")
  .byPage({ continuationToken: marker, maxPageSize: 10 });
response = (await iterator.next()).value;

// Prints blob names
if (response.blobs) {
  for (const blob of response.blobs) {
     console.log(`Blob ${i++}: ${blob.name}`);
  }
}
function findBlobsByTags(tagFilterSqlExpression: string, options?: ContainerFindBlobByTagsOptions): PagedAsyncIterableIterator<FilterBlobItem, ContainerFindBlobsByTagsSegmentResponse, PageSettings>

參數

tagFilterSqlExpression

string

where 參數可讓呼叫端查詢標記符合指定表達式的 Blob。 指定的表達式必須評估為 true,才能在結果中傳回 Blob。 [OData - ABNF] 篩選語法規則會定義 where query 參數值的正式文法;不過,Blob 服務只支援 OData 篩選語法的子集。

options
ContainerFindBlobByTagsOptions

依標記尋找 Blob 的選項。

傳回

generateSasUrl(ContainerGenerateSasUrlOptions)

僅適用於使用共用密鑰認證建構的 ContainerClient。

根據傳入的用戶端屬性和參數,產生 Blob 容器服務共用存取簽章 (SAS) URI。 SAS 是由客戶端的共用金鑰認證所簽署。

請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas

function generateSasUrl(options: ContainerGenerateSasUrlOptions): Promise<string>

參數

options
ContainerGenerateSasUrlOptions

選擇性參數。

傳回

Promise<string>

由此用戶端所代表資源的 URI 所組成的 SAS URI,後面接著產生的 SAS 令牌。

getAccessPolicy(ContainerGetAccessPolicyOptions)

取得指定容器的許可權。 許可權會指出是否可以公開存取容器數據。

警告:剖析 startOn 和 expiresOn 字串時,JavaScript 日期可能會失去精確度。 例如,新的 Date(“2018-12-31T03:44:23.8827891Z”)將會取得 “2018-12-31T03:44:23.882Z”。

請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/get-container-acl

function getAccessPolicy(options?: ContainerGetAccessPolicyOptions): Promise<ContainerGetAccessPolicyResponse>

參數

options
ContainerGetAccessPolicyOptions

容器取得存取原則作業的選項。

傳回

getAccountInfo(ContainerGetAccountInfoOptions)

取得帳戶資訊作業會傳回指定帳戶的 SKU 名稱和帳戶種類。 從 2018-03-28 版開始的服務版本,即可取得帳戶資訊作業。

請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/get-account-information

function getAccountInfo(options?: ContainerGetAccountInfoOptions): Promise<ContainerGetAccountInfoResponse>

參數

options
ContainerGetAccountInfoOptions

服務取得帳戶資訊作業的選項。

傳回

服務取得帳戶資訊作業的響應數據。

getAppendBlobClient(string)

建立 AppendBlobClient

function getAppendBlobClient(blobName: string): AppendBlobClient

參數

blobName

string

附加 Blob 名稱

傳回

getBlobBatchClient()

建立 BlobBatchClient 物件來執行批次作業。

請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch

function getBlobBatchClient(): BlobBatchClient

傳回

這個容器的新 BlobBatchClient 物件。

getBlobClient(string)

建立 BlobClient

function getBlobClient(blobName: string): BlobClient

參數

blobName

string

Blob 名稱

傳回

指定 Blob 名稱的新 BlobClient 物件。

getBlobLeaseClient(string)

取得管理容器租用的 BlobLeaseClient

function getBlobLeaseClient(proposeLeaseId?: string): BlobLeaseClient

參數

proposeLeaseId

string

初始建議的租用標識碼。

傳回

用於管理容器租用的新 BlobLeaseClient 物件。

getBlockBlobClient(string)

建立 BlockBlobClient

function getBlockBlobClient(blobName: string): BlockBlobClient

參數

blobName

string

區塊 Blob 名稱

範例用法:

const content = "Hello world!";

const blockBlobClient = containerClient.getBlockBlobClient("<blob name>");
const uploadBlobResponse = await blockBlobClient.upload(content, content.length);

傳回

getPageBlobClient(string)

建立 PageBlobClient

function getPageBlobClient(blobName: string): PageBlobClient

參數

blobName

string

分頁 Blob 名稱

傳回

getProperties(ContainerGetPropertiesOptions)

傳回指定容器的所有使用者定義元數據和系統屬性。 傳回的數據不包含容器的 Blob 清單。

請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/get-container-properties

警告:回應中傳回的 metadata 物件會以小寫表示,即使它們原本包含大寫字元也一樣。 這與使用 includeMetadata 選項 BlobServiceCl ient listContainers 方法所傳回的元數據索引鍵不同,這會保留其原始大小寫。

function getProperties(options?: ContainerGetPropertiesOptions): Promise<ContainerGetPropertiesResponse>

參數

options
ContainerGetPropertiesOptions

容器取得屬性作業的選項。

傳回

listBlobsByHierarchy(string, ContainerListBlobsOptions)

傳回異步可反覆運算迭代器,依階層列出所有 Blob。 在指定的帳戶下。

.byPage() 會傳回可同步反覆運算器,以依頁面階層列出 Blob。

使用 for await 語法的範例:

for await (const item of containerClient.listBlobsByHierarchy("/")) {
  if (item.kind === "prefix") {
    console.log(`\tBlobPrefix: ${item.name}`);
  } else {
    console.log(`\tBlobItem: name - ${item.name}`);
  }
}

使用 iter.next()的範例:

let iter = containerClient.listBlobsByHierarchy("/", { prefix: "prefix1/" });
let entity = await iter.next();
while (!entity.done) {
  let item = entity.value;
  if (item.kind === "prefix") {
    console.log(`\tBlobPrefix: ${item.name}`);
  } else {
    console.log(`\tBlobItem: name - ${item.name}`);
  }
  entity = await iter.next();
}

使用 byPage()的範例:

console.log("Listing blobs by hierarchy by page");
for await (const response of containerClient.listBlobsByHierarchy("/").byPage()) {
  const segment = response.segment;
  if (segment.blobPrefixes) {
    for (const prefix of segment.blobPrefixes) {
      console.log(`\tBlobPrefix: ${prefix.name}`);
    }
  }
  for (const blob of response.segment.blobItems) {
    console.log(`\tBlobItem: name - ${blob.name}`);
  }
}

使用頁面大小上限的分頁範例:

console.log("Listing blobs by hierarchy by page, specifying a prefix and a max page size");

let i = 1;
for await (const response of containerClient
  .listBlobsByHierarchy("/", { prefix: "prefix2/sub1/" })
  .byPage({ maxPageSize: 2 })) {
  console.log(`Page ${i++}`);
  const segment = response.segment;

  if (segment.blobPrefixes) {
    for (const prefix of segment.blobPrefixes) {
      console.log(`\tBlobPrefix: ${prefix.name}`);
    }
  }

  for (const blob of response.segment.blobItems) {
    console.log(`\tBlobItem: name - ${blob.name}`);
  }
}
function listBlobsByHierarchy(delimiter: string, options?: ContainerListBlobsOptions): PagedAsyncIterableIterator<({ kind: "prefix" } & BlobPrefix) | ({ kind: "blob" } & BlobItem), ContainerListBlobHierarchySegmentResponse, PageSettings>

參數

delimiter

string

用來定義虛擬階層的字元或字串

options
ContainerListBlobsOptions

列出 Blob 作業的選項。

傳回

listBlobsFlat(ContainerListBlobsOptions)

傳回異步反覆運算器,以列出指定帳戶下的所有 Blob。

.byPage() 會傳回異步可迭代反覆運算器,以列出分頁中的 Blob。

使用 for await 語法的範例:

// Get the containerClient before you run these snippets,
// Can be obtained from `blobServiceClient.getContainerClient("<your-container-name>");`
let i = 1;
for await (const blob of containerClient.listBlobsFlat()) {
  console.log(`Blob ${i++}: ${blob.name}`);
}

使用 iter.next()的範例:

let i = 1;
let iter = containerClient.listBlobsFlat();
let blobItem = await iter.next();
while (!blobItem.done) {
  console.log(`Blob ${i++}: ${blobItem.value.name}`);
  blobItem = await iter.next();
}

使用 byPage()的範例:

// passing optional maxPageSize in the page settings
let i = 1;
for await (const response of containerClient.listBlobsFlat().byPage({ maxPageSize: 20 })) {
  for (const blob of response.segment.blobItems) {
    console.log(`Blob ${i++}: ${blob.name}`);
  }
}

使用分頁搭配標記的範例:

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

// Prints 2 blob names
for (const blob of response.segment.blobItems) {
  console.log(`Blob ${i++}: ${blob.name}`);
}

// Gets next marker
let marker = response.continuationToken;

// Passing next marker as continuationToken

iterator = containerClient.listBlobsFlat().byPage({ continuationToken: marker, maxPageSize: 10 });
response = (await iterator.next()).value;

// Prints 10 blob names
for (const blob of response.segment.blobItems) {
  console.log(`Blob ${i++}: ${blob.name}`);
}
function listBlobsFlat(options?: ContainerListBlobsOptions): PagedAsyncIterableIterator<BlobItem, ContainerListBlobFlatSegmentResponse, PageSettings>

參數

options
ContainerListBlobsOptions

列出 Blob 的選項。

傳回

支援分頁的 asyncIterableIterator。

setAccessPolicy(PublicAccessType, SignedIdentifier[], ContainerSetAccessPolicyOptions)

設定指定容器的許可權。 許可權會指出容器中的 Blob 是否可以公開存取。

當您設定容器的許可權時,會取代現有的許可權。 如果未提供任何存取權或 containerAcl,則會移除現有的容器 ACL。

當您在容器上建立預存存取原則時,最多可能需要 30 秒才會生效。 在此間隔期間,與預存存取原則相關聯的共用存取簽章將會失敗,狀態代碼為 403(禁止),直到存取原則變成作用中為止。

請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/set-container-acl

function setAccessPolicy(access?: PublicAccessType, containerAcl?: SignedIdentifier[], options?: ContainerSetAccessPolicyOptions): Promise<ContainerSetAccessPolicyResponse>

參數

access
PublicAccessType

容器中數據的公用存取層級。

containerAcl

SignedIdentifier[]

每個元素的陣列都有唯一的標識碼和存取原則的詳細數據。

options
ContainerSetAccessPolicyOptions

容器集存取原則作業的選項。

傳回

setMetadata(Metadata, ContainerSetMetadataOptions)

設定指定容器的一或多個使用者定義名稱/值組。

如果未提供任何選項,或參數中未定義任何元數據,則會移除容器元數據。

請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/set-container-metadata

function setMetadata(metadata?: Metadata, options?: ContainerSetMetadataOptions): Promise<ContainerSetMetadataResponse>

參數

metadata
Metadata

將現有的元數據取代為此值。 如果未提供任何值,則會移除現有的元數據。

options
ContainerSetMetadataOptions

容器集元數據作業的選項。

傳回

uploadBlockBlob(string, RequestBodyType, number, BlockBlobUploadOptions)

建立新的區塊 Blob,或更新現有區塊 Blob 的內容。

更新現有的區塊 Blob 會覆寫 Blob 上任何現有的元數據。 不支援部分更新;現有 Blob 的內容會以新內容覆寫。 若要執行區塊 Blob 的部分更新,請使用 stageBlockcommitBlockList

這是非平行上傳方法,請使用 uploadFileuploadStreamuploadBrowserData,以取得並行上傳的更佳效能。

請參閱 https://docs.microsoft.com/rest/api/storageservices/put-blob

function uploadBlockBlob(blobName: string, body: RequestBodyType, contentLength: number, options?: BlockBlobUploadOptions): Promise<{ blockBlobClient: BlockBlobClient, response: BlockBlobUploadResponse }>

參數

blobName

string

要建立或更新的區塊 Blob 名稱。

body
HttpRequestBody

Blob、字串、ArrayBuffer、ArrayBufferView 或函式,會傳回新的可讀取數據流,其位移從數據源開始。

contentLength

number

以位元組為單位的主體長度。 使用 Buffer.byteLength() 來計算字串串的主體長度,包括非 Base64/Hex 編碼字元。

options
BlockBlobUploadOptions

設定區塊 Blob 上傳作業的選項。

傳回

Promise<{ blockBlobClient: BlockBlobClient, response: BlockBlobUploadResponse }>

封鎖 Blob 上傳回應數據和對應的 BlockBlobClient 實例。