قد تجد نفسك في حاجة إلى حل رخيص وفعال لتخزين ملفاتك في وقت ما، ولكن أين تجد هذا الحل؟ تحقق من تخزين كائن البيانات الكبير (Blob) في Microsoft Azure! تعد تخزين الـ Blob واحدة من خدمات تخزين Azure وتتيح لك تخزين كميات كبيرة من الملفات النصية والبيانات الثنائية ومحتوى التدفق أو حتى المحتوى الثابت للتوزيع.
في هذا البرنامج التعليمي، ستتعلم كيفية العمل مع تخزين الـ Blob في Azure من خلال بعض الأمثلة الشائعة.
استمر في القراءة للانغماس في الموضوع!
الشروط المسبقة
سيكون هذا البرنامج التعليمي عرضًا عمليًا. إذا كنت ترغب في متابعة العملية، تأكد من تثبيت وتوافر ما يلي.
- PowerShell 7 مثبتة.
- وحدة Az PowerShell مثبتة في بيئة PowerShell 7 الخاصة بك.
- ملف AzCopy التنفيذي محمل ومتاح.
- اشتراك Azure – هناك طرق متعددة لاستخدام موارد Azure المحددة بتكلفة ضئيلة أو بدون تكلفة.
بناء بيئة Azure
قبل استخدام تخزين البلوب لتخزين ملفاتك، ستحتاج أولاً إلى استيراد وحدات PowerShell Core، الاتصال بالاشتراك الخاص بك في Azure، وبناء بيئة Azure.
1. قم بتشغيل PowerShell 7 وقم بتشغيل الأمر التالي لاستيراد الوحدات التي ستستخدمها لتخزين الملفات في تخزين البلوب.

2. بعد ذلك ، قم بتسجيل الدخول إلى مستأجر Azure Active Directory (AD) الخاص بك، ثم قم بتشغيل الأمر أدناه لإكمال المصادقة التفاعلية في متصفح الويب الخاص بك ، كما هو موضح أدناه.
على الرغم من أنه خارج نطاق هذا البرنامج التعليمي، إلا أن هناك طرق مصادقة أخرى، مثل Service Principal أو استخدام access token.

تأكد دائمًا من أن المستأجر والاشتراك المعروضين بعد تسجيل الدخول هما تلك التي تنوي استخدامها. إذا لزم الأمر، يمكنك تغيير سياقك.
3. الآن قم بتشغيل الأمر أدناه لإنشاء مجموعة موارد resource group جديدة ب اسم demo
، ومضاف إليها خمسة أرقام عشوائية (Get-Random -Maximum 99999
). تكون مجموعات الموارد تحت التسجيل بشكل تسلسلي وتحتوي على موارد تسمح بإدارة أدق.
لاحظ أن -Location
لمجموعة الموارد مضبوطة على Central US
في هذا المثال. عند اكتمال الأمر، يقوم بتخزين النتيجة في متغير $resourceGroup
.

4. قم بتشغيل الأمر أدناه لأداء المهام التالية وإنشاء حساب تخزين Azure جديد. في هذا المثال، يكون اسم حساب التخزين هو storage، وملحق بخمسة أرقام عشوائية (Get-Random -Maximum 99999
). ستحتوي المتغير $storageAccount
على الكائن المرجع بعد اكتمال الأمر.

5. قم بتنفيذ الأمر أدناه لتشغيل بعض المهام لتعيين دور Azure AD:
- قيمة
-SignInName
تستخدم الحساب الذي تم تسجيل الدخول إليه حاليًا عبر خاصيةUserID
المرجعة بواسطة cmdletGet-AzAccessToken
. - قيمة
-RoleDefinitionName
هي دور المساهم في بيانات حاوية التخزين المدمج التي تقوم بتعيينها. - قيمة
-Scope
تحدد نطاق تعيين الدور لحساب التخزين الذي تم إنشاؤه (storage10029 المعروض أدناه) عبر خاصيةId
لمتغير$storageAccount
.
يمكنك دائمًا توفير تعيينات أدوار أكثر تفصيلاً لحاويات فردية حسب الحاجة.

6. أخيرًا ، قم بتشغيل سلسلة الأوامر أدناه لإنشاء ملف يسمى temp.dat على النظام المحلي الخاص بك. ستقوم بتحميل وتنزيل هذا الملف من حساب التخزين في الأقسام التالية لتوضيح كيفية عمل تخزين السحابة.

تحميل الملفات عبر PowerShell
الآن بعد أن قمت ببناء بيئة Azure وأنشأت ملفًا تجريبيًا، دعونا نبدأ بتحميل الملف إلى تخزين Blob. تخزين Blob يعمل بطريقة مختلفة عن أنظمة الملفات القياسية. يُعتبر كل ملف في تخزين Blob ككائن ويُحفظ داخل حاويات.
الوظيفة الأساسية لـ blobs مشابهة لأنظمة الملفات الأخرى، ولكن هناك حالات استخدام قد تكون إحدى الحلول أفضل فيها من الأخرى. يمكن أن تؤيد ال blobs حتى أنظمة الملفات الظاهرية (على سبيل المثال، BlobFuse).
تقدم Microsoft عدة طرق لتحميل الملفات إلى حسابات التخزين الخاصة بك عبر PowerShell و AzCopy و Azure Portal. ولكن دعونا نقوم بتحميل الملف التجريبي (temp.dat) إلى تخزين Blob عبر PowerShell للبداية. يتيح لك PowerShell تجربة متسقة للعمل مع حسابات تخزين Azure الخاصة بك.
سيتم تحميل الإجراءات المطلوبة لأداء هذا العرض تكاليف. راقب استهلاكك واحذف الموارد عندما لا تنوي استخدامها بعد الآن.
قم بتشغيل الأوامر أدناه لإنشاء حاوية جديدة وتحميل ملف temp.dat ($file
) ككائن. تم تسمية الحاوية باسم demo في هذا المثال، ولكن يمكنك تسميتها بشكل مختلف حسب تفضيلك.

تحميل الملفات عبر AzCopy
ربما لديك حالات استخدام أكثر تعقيدًا، مثل مزامنة المحتوى أو نسخ المحتوى بين حسابات مختلفة بشكل مكبّر. إذا كان الأمر كذلك، فإن أداة سطر الأوامر AzCopy هي ما تحتاجه.
قم بتشغيل الأوامر أدناه لتسجيل الدخول إلى مستأجر Azure الخاص بك ونسخ ملفك المحلي ($file
) إلى عنوان URL الخاص بحاويتك. أنت تقوم بتسجيل الدخول إلى مستأجر Azure لأن AzCopy لا يعرف بالاعتمادات التي تستخدمها مع PowerShell.

بدلاً من الرفع، ربما ترغب في تنزيل الملفات عبر AzCopy. إذا كنت كذلك، قم بتشغيل الأمر أدناه لـ
نسخ
الملفات المحددة (temp.dat
) من حاويتك إلى الدليل المحلي الحالي:& .\azopy.exe copy "$($container.CloudBlobContainer.Uri.AbsoluteUri)/temp.dat" .\temp.dat
تحميل الملفات عبر بوابة Azure
إذا كنت تفضل طريقة GUI لتحميل ملفاتك، فـ Azure Storage Explorer هو صديقك. Azure Storage Explorer هو أحد أفضل الطرق الرسومية لإدارة تخزين الكتل الخاص بك. يمكنك الوصول إلى مستكشف التخزين من مورد حساب التخزين في بوابة Azure.
1. افتح المتصفح الويب المفضل لديك وانتقل إلى مستكشف التخزين في بوابة Azure.
2. انقر فوق الحاوية demo تحت حاويات الكتل، كما هو موضح أدناه، ثم انقر فوق تحميل للوصول إلى شفرة تحميل الكتلة (لوحة اليمين).
3. الآن انقر فوق أيقونة المجلد في اللوحة تحميل الكتلة لتحديد الملفات التي تريد تحميلها (temp.dat).
4. أخيرًا، انقر على تحميل (زر أزرق) لتحميل ملفك.

بمجرد اكتمال التحميل، يمكنك إغلاق شاشة تحميل الكتلة ورؤية الكتلة التي قمت بتحميلها، مثل الصورة أدناه.

تنزيل الملفات عبر بوابة Azure
بشكل مماثل لتحميل المحتوى إلى تخزين الكتل، تدعم Azure تنزيل المحتوى بعدة طرق. ولكن نظرًا لأنك قمت للتو بتحميل ملف (temp.dat) عبر بوابة Azure، دعونا نقوم بتنزيل نفس الملف باستخدام Azure Storage Explorer في بوابة Azure.
حدد الملف (temp.dat) للتنزيل وانقر على زر تنزيل في Azure Storage Explorer، كما هو موضح أدناه. وبذلك، تنشأ نافذة حوارية جديدة لتأكيد عملية التنزيل التي سترونها في الخطوة التالية.

الآن انقر على زر انقر هنا لبدء التنزيل لتنزيل الملفات التي حددتها.

تنزيل الملفات عبر PowerShell
مثل تحميل الملفات، تحصل أيضًا على خيار لتنزيل الملفات من تخزين الكتل عن طريق تشغيل أوامر في PowerShell. باستخدام PowerShell، يمكنك إدراج الكائنات داخل حاوية ثم تنزيلها.
قم بتشغيل الأوامر أدناه لإدراج جميع الكائنات في الحاوية الخاصة بك وتنزيل temp.dat إلى الدليل المحلي الخاص بك.

إذا كنت تفضل استخدام روابط فريدة وقصيرة لتنزيل الملفات، يمكنك استخدام رموز الوصول المشتركة (SAS) لإنشاء رابط تنزيل مُفوّض مسبقًا. هذه الرموز فريدة وخاصة، وهي رموز مصادقة يمكنك استخدامها للتحقق من وصولك.
قم بتشغيل الأوامر التالية لإنشاء رابط تنزيل جديد للملف (temp.dat
) الذي تريد تنزيله. ينتهي صلاحية الرابط الذي تم إنشاؤه بعد 10 ثوانٍ، وسيقوم بتنزيل المحتوى (Invoke-WebRequest $uri
) باستخدام تلك الروابط إلى المتغير $temp
.

استضافة صفحة ويب على الإنترنت العامة من تخزين الكتل
حتى الآن، رأيت حالات استخدام لتنزيل الملفات من قبل مستخدمين مصدقين. ولكن هل تعلم أن تخزين الكتل يمكن أن يوفر خيارًا ممتازًا للمحتوى العام أيضًا؟ مثال على ذلك هو استخدام كتلة لاستضافة محتوى صفحة الويب الخاص بك، والذي ستحقق ذلك في هذا العرض التوضيحي.
حتى إذا كانت محتويات صفحة الويب الخاصة بك مشفرة سواء أثناء النقل أو في حالة الراحة، يمكن لأي شخص الوصول إلى تلك المحتويات إذا تم تعيين الوصول العام.
بما أنك تقوم بإعداد حالة استخدام مختلفة، ستستفيد من أحد الفوائد الرئيسية للسحابة العامة في النطاق والمرونة. يمكنك تخصيص حساب تخزين جديد لحالة استخدام معينة وتقليل مخاطر استخدام حاويات السحابة العامة.
1. قم بتشغيل الأمر أدناه لإنشاء حساب تخزين جديد كما فعلت في الخطوة الرابعة من قسم “بناء بيئة Azure”. ولكن هذه المرة، ستمرر الكائن المسترجع إلى المتغير $publicStorageAccount
.

الآن لديك حساب تخزين مخصص للمحتوى العام، ويمكنك تكوينه لاستضافة محتوى الويب الثابت باستخدام الأمر التالي.
2. في الخطوة التالية، قم بتشغيل أمر Enable-AzStorageStaticWebsite
لتكوين حساب التخزين ($publicStorageAccount
) لحالة الاستخدام الجديدة الخاصة بك. يُحدد -IndexDocument
صفحة الويب الافتراضية التي تريد تقديمها للمستخدمين. و-Context
سيكون حساب التخزين الجديد الذي أنشأته للتو.

3. قم بتشغيل الأوامر أدناه لإنشاء مستند HTML جديد في الدليل الحالي وتحميل هذا المستند إلى الحاوية المخصصة خصيصًا لاستضافة محتوى الويب. يُعين نوع المحتوى على HTML (ContentType="text/html"
) حتى يتمكن متصفح الويب من تفسير المستند بشكل صحيح.
الوصول إلى المستند على متصفح الويب يطبع Hello from <storage account name> message.

4. الآن قم بتشغيل الأمر التالي للحصول على عنوان URL حيث يمكن للمستخدمين الوصول إلى محتواك.

5. وأخيرًا، افتح الرابط في متصفحك، سترى شيئًا مشابهًا للصورة الموجودة أدناه.

تنظيف الموارد
الآن بعد أن قمت بتجربة هذه المفاهيم الجديدة في استخدام تخزين blob، سترغب في تنظيف مواردك. لماذا؟ لأن ذلك يساعدك على الحفاظ على اشتراكك نظيفًا. والأهم من ذلك، تتوقف عن تكبد تكاليف إضافية.
نظرًا لأن جميع الموارد التي استخدمتها في هذا البرنامج التعليمي موجودة في مجموعة موارد واحدة، يمكنك تنظيف جميع الموارد عن طريق حذف مجموعة الموارد.
الموارد لن تكون دائمًا محتواة ضمن مجموعة موارد واحدة، مما يوضح لماذا يمكن أن يكون الاستخدام الليبرالي للتقسيم اللوجي مناسبًا، خاصة عند الاختبار أو التكرار بشكل متكرر.
قم بتشغيل الأمر Remove-AzResourceGroup
أدناه، محددًا خاصية ResourceGroupName
لمتغير $resourceGroup
لحذف مجموعة الموارد وجميع الموارد داخلها.

الاستنتاج
في هذا البرنامج التعليمي، لمست عملية تحميل وتنزيل الملفات إلى ومن الـ blobs في تخزين السحابة على منصات مختلفة. كما تعلمت أنه من الممكن استضافة صفحة ويب من تخزين الـ blob التي يمكن للمستخدمين الوصول إليها علنًا.
يمكنك القيام بالمزيد باستخدام تخزين الكتل وأنواع التخزين الأخرى، فكيف ستبني على هذه المفاهيم؟ ربما تعمل مع حسابات تخزين الملفات، وتوفر أنظمة ملفات خادمية، أو تستخدم كتل الصفحات لأقراص صلبة افتراضية مع أجهزة الكمبيوتر الظاهرية في Azure؟