سرد حاويات الكائنات الثنائية كبيرة الحجم باستخدام TypeScript
عند سرد الحاويات في حساب Azure Storage من تعليمتك البرمجية، يمكنك تحديد عدد من الخيارات لإدارة كيفية إرجاع النتائج من Azure Storage. توضح هذه المقالة كيفية سرد الحاويات باستخدام مكتبة عميل Azure Storage لـ javaScript.
المتطلبات الأساسية
- تفترض الأمثلة في هذه المقالة أن لديك بالفعل مشروعا تم إعداده للعمل مع مكتبة عميل Azure Blob Storage ل JavaScript. للتعرف على إعداد مشروعك، بما في ذلك تثبيت الحزمة واستيراد الوحدات النمطية وإنشاء كائن عميل معتمد للعمل مع موارد البيانات، راجع بدء استخدام Azure Blob Storage وTypeScript.
- يجب أن يكون لآلية التخويل أذونات لسرد حاويات الكائن الثنائي كبير الحجم. لمعرفة المزيد، راجع إرشادات التخويل لعملية REST API التالية:
حول خيارات سرد الحاوية
لسرد الحاويات في حساب التخزين الخاص بك، قم بإنشاء كائن BlobServiceClient ثم قم باستدعاء الأسلوب التالي:
- BlobServiceClient.listContainers
سرد الحاويات ذات البادئة الاختيارية
بشكل افتراضي، تعرض عملية السرد ما يصل إلى 5000 نتيجة في المرة الواحدة.
يعمل BlobServiceClient.listContainers على إرجاع قائمة من كائنات ContainerItem. استخدم containerItem.name لإنشاء ContainerClient للحصول على كائن ContainerProperties أكثر اكتمالاً.
// return up to 5000 containers
async function listContainers(
blobServiceClient: BlobServiceClient,
containerNamePrefix: string
): Promise<void> {
const options: ServiceListContainersOptions = {
includeDeleted: false,
includeMetadata: true,
includeSystem: true,
prefix: containerNamePrefix
};
for await (const containerItem of blobServiceClient.listContainers(options)) {
// ContainerItem
console.log(`For-await list: ${containerItem.name}`);
// ContainerClient
const containerClient: ContainerClient =
blobServiceClient.getContainerClient(containerItem.name);
// ... do something with container
// containerClient.listBlobsFlat({ includeMetadata: true,
// includeSnapshots: false,
// includeTags: true,
// includeVersions: false,
// prefix: ''});
}
}
سرد الحاويات مع تقسيم الصفحات
لإرجاع مجموعة أصغر من النتائج، قم بتوفير قيمة غير صفرية لحجم صفحة النتائج المراد إرجاعها.
إذا كان حساب التخزين الخاص بك يحتوي على أكثر من 5000 حاوية، أو إذا قمت بتحديد حجم صفحة بحيث تقوم عملية السرد بإرجاع مجموعة فرعية من الحاويات في حساب التخزين، فسيقوم Azure Storage بإرجاع رمز مميز للاستمرار مع قائمة الحاويات. الرمز المميز للاستمرار هو قيمة معتمة يمكنك استخدامها لاسترداد المجموعة التالية من النتائج من Azure Storage.
في التعليمات البرمجية الخاصة بك، تحقق من قيمة الرمز المميز للاستمرار لتحديد ما إذا كان فارغا أم لا. عندما يكون الرمز المميز للاستمرار فارغًا، تكون مجموعة النتائج كاملة. إذا لم يكن الرمز المميز للاستمرار فارغاً، فاتصل بطريقة الإدراج مرة أخرى، ومرر الرمز المميز للاستمرار لاسترداد المجموعة التالية من النتائج، حتى يصبح رمز المتابعة فارغاً.
async function listContainersWithPagingMarker(
blobServiceClient: BlobServiceClient
) {
// add prefix to filter list
const containerNamePrefix = '';
// page size
const maxPageSize = 2;
const options: ServiceListContainersOptions = {
includeDeleted: false,
includeMetadata: true,
includeSystem: true,
prefix: containerNamePrefix
};
let i = 1;
let iterator = blobServiceClient
.listContainers(options)
.byPage({ maxPageSize });
let response = (await iterator.next()).value;
// Prints 2 container names
if (response.containerItems) {
for (const container of response.containerItems) {
console.log(`IteratorPaged: Container ${i++}: ${container.name}`);
}
}
// Gets next marker
const marker = response.continuationToken;
// Passing next marker as continuationToken
iterator = blobServiceClient
.listContainers()
.byPage({ continuationToken: marker, maxPageSize: maxPageSize * 2 });
response = (await iterator.next()).value;
// Print next 4 container names
if (response.containerItems) {
for (const container of response.containerItems) {
console.log(`Container ${i++}: ${container.name}`);
}
}
}
استخدم معلمة الخيارات إلى أسلوب listContainers لتصفية النتائج باستخدام بادئة.
تصفية النتائج باستخدام البادئة
لتصفية قائمة الحاويات، حدد سلسلة لخاصية البادئة. يمكن أن تتضمن سلسلة البادئة حرفاً واحداً أو أكثر. ثم يقوم Azure Storage بإرجاع الحاويات التي تبدأ أسماؤها بهذه البادئة فقط.
async function listContainers(
blobServiceClient: BlobServiceClient,
containerNamePrefix: string
) {
const options: ServiceListContainersOptions = {
includeDeleted: false,
includeMetadata: true,
includeSystem: true,
// filter by prefix
prefix: containerNamePrefix
};
for await (const containerItem of blobServiceClient.listContainers(options)) {
// do something with containerItem
}
}
تضمين بيانات التعريف في النتائج
لإرجاع بيانات تعريف الحاوية مع النتائج، حدد قيمة بيانات التعريف لتعداد BlobContainerTraits. يضمن Azure Storage بيانات التعريف مع كل حاوية يتم إرجاعها، لذلك لا تحتاج إلى جلب بيانات تعريف الحاوية كعملية منفصلة.
async function listContainers(
blobServiceClient: BlobServiceClient,
containerNamePrefix: string
) {
const options: ServiceListContainersOptions = {
includeDeleted: false,
includeSystem: true,
prefix: containerNamePrefix,
// include metadata
includeMetadata: true,
};
for await (const containerItem of blobServiceClient.listContainers(options)) {
// do something with containerItem
}
}
الموارد
لمعرفة المزيد حول سرد الحاويات باستخدام مكتبة عميل Azure Blob Storage ل JavaScript، راجع الموارد التالية.
عمليات واجهة برمجة تطبيقات REST
يحتوي Azure SDK ل JavaScript على مكتبات تستند إلى واجهة برمجة تطبيقات AZURE REST، ما يسمح لك بالتفاعل مع عمليات REST API من خلال نماذج JavaScript المألوفة. تستخدم أساليب مكتبة العميل لإدراج الحاويات عملية REST API التالية:
- حاويات القائمة (REST API)
نماذج التعليمات البرمجية
موارد مكتبة العميل
(راجع أيضًا )
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ