حذف واستعادة حاوية كائن ثنائي كبير الحجم باستخدام JavaScript
توضح هذه المقالة كيفية حذف الحاويات باستخدام مكتبة عميل Azure Storage لـ JavaScript. إذا قمت بتمكين الحذف المبدئي للحاوية، يمكنك استعادة الحاويات المحذوفة.
المتطلبات الأساسية
- تفترض الأمثلة في هذه المقالة أن لديك بالفعل مشروعا تم إعداده للعمل مع مكتبة عميل Azure Blob Storage ل JavaScript. للتعرف على إعداد مشروعك، بما في ذلك تثبيت الحزمة، واستيراد الوحدات النمطية، وإنشاء كائن عميل معتمد للعمل مع موارد البيانات، راجع بدء استخدام Azure Blob Storage وJavaScript.
- يجب أن يكون لآلية التخويل أذونات لحذف حاوية كائن ثنائي كبير الحجم، أو لاستعادة حاوية محذوفة مبدئيا. لمعرفة المزيد، راجع إرشادات التخويل لعمليات واجهة برمجة تطبيقات REST التالية:
احذف حاوية
لحذف حاوية في JavaScript، قم بإنشاء BlobServiceClient أو ContainerClient ثم استخدم إحدى الطرق التالية:
- BlobServiceClient.deleteContainer
- ContainerClient.حذف
- ContainerClient.deleteIfExists
بعد حذف حاوية، لا يمكنك إنشاء حاوية بنفس الاسم لمدة 30 ثانية على الأقل. ستفشل محاولة إنشاء حاوية بنفس الاسم باستخدام رمز الخطأ HTTP 409 (تعارض). ستفشل أي عمليات أخرى على الحاوية أو الكائنات الثنائية كبيرة الحجم التي تحتوي عليها باستخدام رمز خطأ HTTP 404 (غير موجود).
حذف حاوية مع BlobServiceClient
المثال التالي يحذف الحاوية المحددة. استخدم BlobServiceClient لحذف حاوية:
// delete container immediately on blobServiceClient
async function deleteContainerImmediately(blobServiceClient, containerName) {
const response = await blobServiceClient.deleteContainer(containerName);
if (!response.errorCode) {
console.log(`deleted ${containerItem.name} container`);
}
}
حذف الحاوية باستخدام ContainerClient
يوضح المثال التالي كيفية حذف جميع الحاويات التي يبدأ اسمها ببادئة محددة باستخدام ContainerClient.
async function deleteContainersWithPrefix(blobServiceClient, blobNamePrefix){
const containerOptions = {
includeDeleted: false,
includeMetadata: false,
includeSystem: true,
prefix: blobNamePrefix
}
for await (const containerItem of blobServiceClient.listContainers(containerOptions)) {
const containerClient = blobServiceClient.getContainerClient(containerItem.name);
const response = await containerClient.delete();
if(!response.errorCode){
console.log(`deleted ${containerItem.name} container`);
}
}
}
استعادة حاوية محذوفة
عند تمكين الحذف المبدئي للحاوية لحساب تخزين، قد تُسترد حاوية ومحتوياتها بعد حذفها، خلال فترة الاحتفاظ التي تحددها. يمكنك استعادة حاوية محذوفة مبدئيا باستخدام كائن BlobServiceClient :
- BlobServiceClient.undeleteContainer
يبحث المثال التالي على حاوية محذوفة، ويحصل على معرف إصدار تلك الحاوية المحذوفة، ثم يمرر هذا المعرف إلى طريقة UndeleteBlobContainerAsync لاستعادة الحاوية.
// Undelete specific container - last version
async function undeleteContainer(blobServiceClient, containerName) {
// version to undelete
let containerVersion;
const containerOptions = {
includeDeleted: true,
prefix: containerName
}
// container listing returns version (timestamp) in the ContainerItem
for await (const containerItem of blobServiceClient.listContainers(containerOptions)) {
// if there are multiple deleted versions of the same container,
// the versions are in asc time order
// the last version is the most recent
if (containerItem.name === containerName) {
containerVersion = containerItem.version;
}
}
const containerClient = await blobServiceClient.undeleteContainer(
containerName,
containerVersion,
// optional/new container name - if unused, original container name is used
//newContainerName
);
// undelete was successful
console.log(`${containerName} is undeleted`);
// do something with containerClient
// ...
}
الموارد
لمعرفة المزيد حول حذف حاوية باستخدام مكتبة عميل Azure Blob Storage ل JavaScript، راجع الموارد التالية.
عمليات واجهة برمجة تطبيقات REST
يحتوي Azure SDK ل JavaScript على مكتبات تستند إلى واجهة برمجة تطبيقات AZURE REST، ما يسمح لك بالتفاعل مع عمليات REST API من خلال نماذج JavaScript المألوفة. تستخدم أساليب مكتبة العميل لحذف حاوية أو استعادتها عمليات REST API التالية:
- حذف الحاوية (REST API)
- استعادة الحاوية (REST API)