تنزيل كائن ثنائي كبير الحجم باستخدام JavaScript أو TypeScript

توضح هذه المقالة كيفية تنزيل كائن ثنائي كبير الحجم باستخدام مكتبة عميل Azure Storage ل JavaScript. يمكنك تنزيل بيانات الكائن الثنائي كبير الحجم إلى وجهات مختلفة، بما في ذلك مسار ملف محلي أو دفق أو سلسلة نصية.

المتطلبات الأساسية

  • تفترض الأمثلة في هذه المقالة أن لديك بالفعل مشروعا تم إعداده للعمل مع مكتبة عميل Azure Blob Storage ل JavaScript. للتعرف على إعداد مشروعك، بما في ذلك تثبيت الحزمة، واستيراد الوحدات النمطية، وإنشاء كائن عميل معتمد للعمل مع موارد البيانات، راجع بدء استخدام Azure Blob Storage وJavaScript.
  • يجب أن يكون لآلية التخويل أذونات لتنفيذ عملية تنزيل. لمعرفة المزيد، راجع إرشادات التخويل لعملية REST API التالية:

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

يمكنك استخدام أي من الطرق التالية لتنزيل كائن ثنائي كبير الحجم:

تنزيل إلى مسار ملف

يقوم المثال التالي بتنزيل كائن ثنائي كبير الحجم باستخدام مسار ملف مع أسلوب BlobClient.downloadToFile . يتوفر هذا الأسلوب فقط في وقت تشغيل Node.js:

async function downloadBlobToFile(containerClient, blobName, localFilePath) {

    const blobClient = containerClient.getBlobClient(blobName);
    
    await blobClient.downloadToFile(localFilePath);
}

تنزيل كدفق

في المثال التالي، يتم تنزيل كائن ثنائي كبير الحجم عن طريق إنشاء كائن دفق Node.js قابل للكتابة ثم الاتصال بهذا الدفق باستخدام الأسلوب BlobClient.download.

async function downloadBlobAsStream(containerClient, blobName, writableStream) {

    const blobClient = containerClient.getBlobClient(blobName);

    const downloadResponse = await blobClient.download();

    downloadResponse.readableStreamBody.pipe(writableStream);
}

تنزيل إلى سلسلة

يقوم المثال Node.js التالي بتنزيل كائن ثنائي كبير الحجم إلى سلسلة باستخدام أسلوب BlobClient.download . في Node.js، ترجع بيانات الكائن الثنائي كبير الحجم في readableStreamBody.

async function downloadBlobToString(containerClient, blobName) {

    const blobClient = containerClient.getBlobClient(blobName);

    const downloadResponse = await blobClient.download();

    const downloaded = await streamToBuffer(downloadResponse.readableStreamBody);
    console.log('Downloaded blob content:', downloaded.toString());
}

function streamToBuffer(readableStream) {
    return new Promise((resolve, reject) => {
        const chunks = [];
        readableStream.on('data', (data) => {
            chunks.push(data instanceof Buffer ? data : Buffer.from(data));
        });
        readableStream.on('end', () => {
            resolve(Buffer.concat(chunks));
        });
        readableStream.on('error', reject);
    });
}

إذا كنت تعمل مع JavaScript في المتصفح، فإن بيانات الكائن الثنائي كبير الحجم ترجع في blobBody وعد. لمعرفة المزيد، راجع مثال استخدام المستعرضات في BlobClient.download.

الموارد

لمعرفة المزيد حول كيفية تنزيل الكائنات الثنائية كبيرة الحجم باستخدام مكتبة عميل Azure Blob Storage ل JavaScript، راجع الموارد التالية.

نماذج التعليمات البرمجية

عرض نماذج التعليمات البرمجية من هذه المقالة (GitHub):

عمليات واجهة برمجة تطبيقات REST

يحتوي Azure SDK ل JavaScript على مكتبات تستند إلى واجهة برمجة تطبيقات AZURE REST، ما يسمح لك بالتفاعل مع عمليات REST API من خلال نماذج JavaScript المألوفة. تستخدم أساليب مكتبة العميل لتنزيل الكائنات الثنائية كبيرة الحجم عملية REST API التالية:

موارد مكتبة العميل

  • هذه المقالة هي جزء من دليل مطور Blob Storage ل JavaScript/Typescript. لمعرفة المزيد، راجع القائمة الكاملة لمقالات دليل المطور في إنشاء تطبيق JavaScript/Typescript.