ContainerClient class

يمثل ContainerClient عنوان URL لحاوية Azure Storage مما يسمح لك بمعالجة الكائنات الثنائية كبيرة الحجم الخاصة به.

Extends

StorageClient

المنشئون

ContainerClient(string, PipelineLike)

إنشاء مثيل ContainerClient. يقبل هذا الأسلوب عنوان URL يشير إلى حاوية. لن يتم إلغاء سلسلة URL المشفرة مرتين، وسيتم إلغاء الأحرف الخاصة فقط في مسار URL. إذا كان اسم كائن ثنائي كبير الحجم يتضمن ؟ أو ٪، يجب ترميز اسم الكائن الثنائي كبير الحجم في عنوان URL.

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

إنشاء مثيل ContainerClient. يقبل هذا الأسلوب عنوان URL يشير إلى حاوية. لن يتم إلغاء سلسلة URL المشفرة مرتين، وسيتم إلغاء الأحرف الخاصة فقط في مسار URL. إذا كان اسم كائن ثنائي كبير الحجم يتضمن ؟ أو ٪، يجب ترميز اسم الكائن الثنائي كبير الحجم في عنوان 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)

وضع علامة على الحاوية المحددة للحذف. يتم حذف الحاوية وأي كائنات ثنائية كبيرة الحجم موجودة داخلها لاحقا أثناء تجميع البيانات المهملة.

راجع https://docs.microsoft.com/en-us/rest/api/storageservices/delete-container

deleteBlob(string, ContainerDeleteBlobOptions)

وضع علامة على الكائن الثنائي كبير الحجم أو اللقطة المحددة للحذف. يتم حذف الكائن الثنائي كبير الحجم لاحقا أثناء تجميع البيانات المهملة. لاحظ أنه من أجل حذف كائن ثنائي كبير الحجم، يجب حذف جميع لقطاته. يمكنك حذف كليهما في نفس الوقت باستخدام عملية حذف كائن ثنائي كبير الحجم.

راجع https://docs.microsoft.com/en-us/rest/api/storageservices/delete-blob

deleteIfExists(ContainerDeleteMethodOptions)

وضع علامة على الحاوية المحددة للحذف إذا كانت موجودة. يتم حذف الحاوية وأي كائنات ثنائية كبيرة الحجم موجودة داخلها لاحقا أثناء تجميع البيانات المهملة.

راجع https://docs.microsoft.com/en-us/rest/api/storageservices/delete-container

exists(ContainerExistsOptions)

إرجاع true إذا كان مورد حاوية Azure الذي يمثله هذا العميل موجودا؛ خطأ خلاف ذلك.

ملاحظة: استخدم هذه الدالة بعناية حيث قد يتم حذف حاوية موجودة من قبل عملاء أو تطبيقات أخرى. العكس قد تتم إضافة حاويات جديدة بنفس الاسم من قبل عملاء أو تطبيقات أخرى بعد اكتمال هذه الدالة.

findBlobsByTags(string, ContainerFindBlobByTagsOptions)

إرجاع مكرر غير متزامن قابل للتكبير للعثور على جميع الكائنات الثنائية كبيرة الحجم ذات العلامة المحددة ضمن الحاوية المحددة.

يقوم .byPage() بإرجاع مكرر غير متزامن لسرد الكائنات الثنائية كبيرة الحجم في الصفحات.

مثال على استخدام 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 الذي تم إنشاؤه باستخدام بيانات اعتماد مفتاح مشترك.

إنشاء عنوان URI لتوقيع الوصول المشترك لخدمة حاوية Blob (SAS) استنادا إلى خصائص العميل والمعلمات التي تم تمريرها. يتم توقيع SAS بواسطة بيانات اعتماد المفتاح المشترك للعميل.

راجع https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas

getAccessPolicy(ContainerGetAccessPolicyOptions)

الحصول على أذونات الحاوية المحددة. تشير الأذونات إلى ما إذا كان يمكن الوصول إلى بيانات الحاوية بشكل عام.

تحذير: من المحتمل أن يفقد JavaScript Date الدقة عند تحليل startsOn وانتهاء صلاحية سلاسلOn. على سبيل المثال، التاريخ الجديد("2018-12-31T03:44:23.8827891Z").toISOString() سيحصل على "2018-12-31T03:44:23.882Z".

راجع https://docs.microsoft.com/en-us/rest/api/storageservices/get-container-acl

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)

إرجاع جميع بيانات التعريف المعرفة من قبل المستخدم وخصائص النظام للحاوية المحددة. لا تتضمن البيانات التي تم إرجاعها قائمة الكائنات الثنائية كبيرة الحجم للحاوية.

راجع https://docs.microsoft.com/en-us/rest/api/storageservices/get-container-properties

تحذير: metadata سيكون للكائن الذي تم إرجاعه في الاستجابة مفاتيحه بأحرف صغيرة، حتى إذا كانت تحتوي في الأصل على أحرف كبيرة. يختلف هذا عن مفاتيح بيانات التعريف التي تم إرجاعها بواسطة listContainers أسلوب BlobServiceClient باستخدام includeMetadata الخيار ، والذي سيحتفظ باغلفتها الأصلية.

listBlobsByHierarchy(string, ContainerListBlobsOptions)

إرجاع مكرر غير متزامن لسرد جميع الكائنات الثنائية كبيرة الحجم حسب التسلسل الهرمي. ضمن الحساب المحدد.

يقوم .byPage() بإرجاع مكرر غير متزامن لسرد الكائنات الثنائية كبيرة الحجم حسب التسلسل الهرمي في الصفحات.

مثال على استخدام 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)

إرجاع مكرر غير متزامن لسرد جميع الكائنات الثنائية كبيرة الحجم ضمن الحساب المحدد.

يقوم .byPage() بإرجاع مكرر غير متزامن لسرد الكائنات الثنائية كبيرة الحجم في الصفحات.

مثال على استخدام 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)

تعيين أذونات الحاوية المحددة. تشير الأذونات إلى ما إذا كان يمكن الوصول إلى الكائنات الثنائية كبيرة الحجم في حاوية بشكل عام.

عند تعيين أذونات للحاوية، يتم استبدال الأذونات الموجودة. إذا لم يتم توفير الوصول أو containerAcl، فستتم إزالة قائمة التحكم في الوصول للحاوية الموجودة.

عند إنشاء نهج وصول مخزن على حاوية، قد يستغرق الأمر ما يصل إلى 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)

إنشاء كائن ثنائي كبير الحجم للكتلة جديد، أو تحديث محتوى كائن ثنائي كبير الحجم للكتلة موجود.

يؤدي تحديث كائن ثنائي كبير الحجم للكتلة موجود إلى الكتابة فوق أي بيانات تعريف موجودة على الكائن الثنائي كبير الحجم. التحديثات الجزئية غير مدعومة؛ تتم الكتابة فوق محتوى الكائن الثنائي كبير الحجم الموجود بالمحتوى الجديد. لإجراء تحديث جزئي لكائن ثنائي كبير الحجم للكتلة، استخدم stageBlock و commitBlockList.

هذه طريقة تحميل غير متوازية، يرجى استخدام uploadFile أو uploadStream أو uploadBrowserData للحصول على أداء أفضل مع تحميل التزامن.

راجع https://docs.microsoft.com/rest/api/storageservices/put-blob

تفاصيل المنشئ

ContainerClient(string, PipelineLike)

إنشاء مثيل ContainerClient. يقبل هذا الأسلوب عنوان URL يشير إلى حاوية. لن يتم إلغاء سلسلة URL المشفرة مرتين، وسيتم إلغاء الأحرف الخاصة فقط في مسار URL. إذا كان اسم كائن ثنائي كبير الحجم يتضمن ؟ أو ٪، يجب ترميز اسم الكائن الثنائي كبير الحجم في عنوان URL.

new ContainerClient(url: string, pipeline: PipelineLike)

المعلمات

url

string

سلسلة URL تشير إلى حاوية تخزين Azure، مثل "https://myaccount.blob.core.windows.net/mycontainer". يمكنك إلحاق SAS إذا كنت تستخدم AnonymousCredential، مثل "https://myaccount.blob.core.windows.net/mycontainer?sasString".

pipeline
PipelineLike

استدعاء newPipeline() لإنشاء مسار افتراضي، أو توفير مسار مخصص.

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

إنشاء مثيل ContainerClient. يقبل هذا الأسلوب عنوان URL يشير إلى حاوية. لن يتم إلغاء سلسلة URL المشفرة مرتين، وسيتم إلغاء الأحرف الخاصة فقط في مسار URL. إذا كان اسم كائن ثنائي كبير الحجم يتضمن ؟ أو ٪، يجب ترميز اسم الكائن الثنائي كبير الحجم في عنوان URL.

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

المعلمات

url

string

سلسلة URL تشير إلى حاوية تخزين Azure، مثل "https://myaccount.blob.core.windows.net/mycontainer". يمكنك إلحاق SAS إذا كنت تستخدم AnonymousCredential، مثل "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

سلسلة اتصال الحساب أو سلسلة اتصال SAS لحساب تخزين Azure. [ ملاحظة - لا يمكن استخدام سلسلة اتصال الحساب إلا في وقت تشغيل 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)

وضع علامة على الحاوية المحددة للحذف. يتم حذف الحاوية وأي كائنات ثنائية كبيرة الحجم موجودة داخلها لاحقا أثناء تجميع البيانات المهملة.

راجع https://docs.microsoft.com/en-us/rest/api/storageservices/delete-container

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

المعلمات

options
ContainerDeleteMethodOptions

خيارات لعملية حذف الحاوية.

المرتجعات

deleteBlob(string, ContainerDeleteBlobOptions)

وضع علامة على الكائن الثنائي كبير الحجم أو اللقطة المحددة للحذف. يتم حذف الكائن الثنائي كبير الحجم لاحقا أثناء تجميع البيانات المهملة. لاحظ أنه من أجل حذف كائن ثنائي كبير الحجم، يجب حذف جميع لقطاته. يمكنك حذف كليهما في نفس الوقت باستخدام عملية حذف كائن ثنائي كبير الحجم.

راجع https://docs.microsoft.com/en-us/rest/api/storageservices/delete-blob

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

المعلمات

blobName

string

options
ContainerDeleteBlobOptions

خيارات لعملية حذف كائن ثنائي كبير الحجم.

المرتجعات

حظر بيانات استجابة حذف كائن ثنائي كبير الحجم.

deleteIfExists(ContainerDeleteMethodOptions)

وضع علامة على الحاوية المحددة للحذف إذا كانت موجودة. يتم حذف الحاوية وأي كائنات ثنائية كبيرة الحجم موجودة داخلها لاحقا أثناء تجميع البيانات المهملة.

راجع https://docs.microsoft.com/en-us/rest/api/storageservices/delete-container

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

المعلمات

options
ContainerDeleteMethodOptions

خيارات لعملية حذف الحاوية.

المرتجعات

exists(ContainerExistsOptions)

إرجاع true إذا كان مورد حاوية Azure الذي يمثله هذا العميل موجودا؛ خطأ خلاف ذلك.

ملاحظة: استخدم هذه الدالة بعناية حيث قد يتم حذف حاوية موجودة من قبل عملاء أو تطبيقات أخرى. العكس قد تتم إضافة حاويات جديدة بنفس الاسم من قبل عملاء أو تطبيقات أخرى بعد اكتمال هذه الدالة.

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

المعلمات

المرتجعات

Promise<boolean>

findBlobsByTags(string, ContainerFindBlobByTagsOptions)

إرجاع مكرر غير متزامن قابل للتكبير للعثور على جميع الكائنات الثنائية كبيرة الحجم ذات العلامة المحددة ضمن الحاوية المحددة.

يقوم .byPage() بإرجاع مكرر غير متزامن لسرد الكائنات الثنائية كبيرة الحجم في الصفحات.

مثال على استخدام 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 المتصل من الاستعلام عن الكائنات الثنائية كبيرة الحجم التي تتطابق علاماتها مع تعبير معين. يجب تقييم التعبير المحدد إلى صحيح لكي يتم إرجاع كائن ثنائي كبير الحجم في النتائج. تحدد قاعدة بناء جملة عامل التصفية [OData - ABNF] القواعد النحوية الرسمية لقيمة معلمة حيث الاستعلام؛ ومع ذلك، يتم دعم مجموعة فرعية فقط من بناء جملة عامل تصفية OData في خدمة Blob.

options
ContainerFindBlobByTagsOptions

خيارات للعثور على الكائنات الثنائية كبيرة الحجم حسب العلامات.

المرتجعات

generateSasUrl(ContainerGenerateSasUrlOptions)

متوفر فقط ل ContainerClient الذي تم إنشاؤه باستخدام بيانات اعتماد مفتاح مشترك.

إنشاء عنوان URI لتوقيع الوصول المشترك لخدمة حاوية Blob (SAS) استنادا إلى خصائص العميل والمعلمات التي تم تمريرها. يتم توقيع SAS بواسطة بيانات اعتماد المفتاح المشترك للعميل.

راجع https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas

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

المعلمات

options
ContainerGenerateSasUrlOptions

المعلمات الاختيارية.

المرتجعات

Promise<string>

SAS URI الذي يتكون من URI إلى المورد الذي يمثله هذا العميل، متبوعا بالرمز المميز SAS الذي تم إنشاؤه.

getAccessPolicy(ContainerGetAccessPolicyOptions)

الحصول على أذونات الحاوية المحددة. تشير الأذونات إلى ما إذا كان يمكن الوصول إلى بيانات الحاوية بشكل عام.

تحذير: من المحتمل أن يفقد JavaScript Date الدقة عند تحليل startsOn وانتهاء صلاحية سلاسلOn. على سبيل المثال، التاريخ الجديد("2018-12-31T03:44:23.8827891Z").toISOString() سيحصل على "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

خيارات لعملية نهج الوصول إلى الحاوية.

المرتجعات

getAppendBlobClient(string)

إنشاء AppendBlobClient

function getAppendBlobClient(blobName: string): AppendBlobClient

المعلمات

blobName

string

اسم كائن ثنائي كبير الحجم للإلحاق

المرتجعات

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

اسم كائن ثنائي كبير الحجم

المرتجعات

كائن BlobClient جديد لاسم الكائن الثنائي كبير الحجم المحدد.

getBlobLeaseClient(string)

احصل على BlobLeaseClient الذي يدير عقود الإيجار على الحاوية.

function getBlobLeaseClient(proposeLeaseId?: string): BlobLeaseClient

المعلمات

proposeLeaseId

string

معرف الإيجار المقترح الأولي.

المرتجعات

كائن BlobLeaseClient جديد لإدارة عقود الإيجار على الحاوية.

getBlockBlobClient(string)

إنشاء BlockBlobClient

function getBlockBlobClient(blobName: string): BlockBlobClient

المعلمات

blobName

string

اسم كائن ثنائي كبير الحجم للكتلة

استخدام المثال:

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

اسم كائن ثنائي كبير الحجم للصفحة

المرتجعات

getProperties(ContainerGetPropertiesOptions)

إرجاع جميع بيانات التعريف المعرفة من قبل المستخدم وخصائص النظام للحاوية المحددة. لا تتضمن البيانات التي تم إرجاعها قائمة الكائنات الثنائية كبيرة الحجم للحاوية.

راجع https://docs.microsoft.com/en-us/rest/api/storageservices/get-container-properties

تحذير: metadata سيكون للكائن الذي تم إرجاعه في الاستجابة مفاتيحه بأحرف صغيرة، حتى إذا كانت تحتوي في الأصل على أحرف كبيرة. يختلف هذا عن مفاتيح بيانات التعريف التي تم إرجاعها بواسطة listContainers أسلوب BlobServiceClient باستخدام includeMetadata الخيار ، والذي سيحتفظ باغلفتها الأصلية.

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

المعلمات

options
ContainerGetPropertiesOptions

خيارات لعملية Container Get Properties.

المرتجعات

listBlobsByHierarchy(string, ContainerListBlobsOptions)

إرجاع مكرر غير متزامن لسرد جميع الكائنات الثنائية كبيرة الحجم حسب التسلسل الهرمي. ضمن الحساب المحدد.

يقوم .byPage() بإرجاع مكرر غير متزامن لسرد الكائنات الثنائية كبيرة الحجم حسب التسلسل الهرمي في الصفحات.

مثال على استخدام 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

خيارات لسرد عملية الكائنات الثنائية كبيرة الحجم.

المرتجعات

listBlobsFlat(ContainerListBlobsOptions)

إرجاع مكرر غير متزامن لسرد جميع الكائنات الثنائية كبيرة الحجم ضمن الحساب المحدد.

يقوم .byPage() بإرجاع مكرر غير متزامن لسرد الكائنات الثنائية كبيرة الحجم في الصفحات.

مثال على استخدام 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

خيارات لسرد الكائنات الثنائية كبيرة الحجم.

المرتجعات

asyncIterableIterator يدعم الترحيل.

setAccessPolicy(PublicAccessType, SignedIdentifier[], ContainerSetAccessPolicyOptions)

تعيين أذونات الحاوية المحددة. تشير الأذونات إلى ما إذا كان يمكن الوصول إلى الكائنات الثنائية كبيرة الحجم في حاوية بشكل عام.

عند تعيين أذونات للحاوية، يتم استبدال الأذونات الموجودة. إذا لم يتم توفير الوصول أو containerAcl، فستتم إزالة قائمة التحكم في الوصول للحاوية الموجودة.

عند إنشاء نهج وصول مخزن على حاوية، قد يستغرق الأمر ما يصل إلى 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)

إنشاء كائن ثنائي كبير الحجم للكتلة جديد، أو تحديث محتوى كائن ثنائي كبير الحجم للكتلة موجود.

يؤدي تحديث كائن ثنائي كبير الحجم للكتلة موجود إلى الكتابة فوق أي بيانات تعريف موجودة على الكائن الثنائي كبير الحجم. التحديثات الجزئية غير مدعومة؛ تتم الكتابة فوق محتوى الكائن الثنائي كبير الحجم الموجود بالمحتوى الجديد. لإجراء تحديث جزئي لكائن ثنائي كبير الحجم للكتلة، استخدم stageBlock و commitBlockList.

هذه طريقة تحميل غير متوازية، يرجى استخدام uploadFile أو uploadStream أو uploadBrowserData للحصول على أداء أفضل مع تحميل التزامن.

راجع 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

اسم الكائن الثنائي كبير الحجم للكتلة المراد إنشاؤه أو تحديثه.

body
HttpRequestBody

كائن ثنائي كبير الحجم أو سلسلة أو ArrayBuffer أو ArrayBufferView أو دالة ترجع دفقا جديدا قابلا للقراءة تكون إزاحته من بداية مصدر البيانات.

contentLength

number

طول الجسم بالبايت. استخدم Buffer.byteLength() لحساب طول النص الأساسي لسلسلة بما في ذلك الأحرف غير المرمزة ب Base64/Hex.

options
BlockBlobUploadOptions

خيارات لتكوين عملية تحميل كائن ثنائي كبير الحجم للكتلة.

المرتجعات

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

حظر بيانات استجابة تحميل كائن ثنائي كبير الحجم ومثيل BlockBlobClient المقابل.