إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يسمح لك Microsoft Azure Blob Storage بتخزين كميات كبيرة من بيانات الكائنات غير المنظمة. يمكنك استخدام تخزين الكائن الثنائي كبير الحجم لجمع بيانات الوسائط أو المحتوى أو التطبيق أو عرضها للمستخدمين. نظرا لأنه يتم تخزين جميع بيانات الكائن الثنائي كبير الحجم داخل الحاويات، يجب عليك إنشاء حاوية تخزين قبل أن تتمكن من البدء في تحميل البيانات. لمعرفة المزيد حول تخزين الكائن الثنائي كبير الحجم، اقرأ مقدمة إلى تخزين Azure Blob.
Azure CLI هي تجربة سطر الأوامر عبر النظام الأساسي ل Azure لإدارة موارد Azure. يمكنك استخدامه في المستعرض الخاص بك مع Azure Cloud Shell. يمكنك أيضا تثبيته على macOS أو Linux أو Windows وتشغيله محليا من سطر الأوامر.
في هذه المقالة الإرشادية، تتعلم استخدام Azure CLI مع Bash للعمل مع كائنات الحاوية.
المتطلبات الأساسية
للوصول إلى Azure Storage، ستحتاج إلى اشتراك Azure. إذا لم يكن لديك اشتراك بالفعل، فأنشئ حسابًا مجانيًا قبل أن تبدأ.
يتم الوصول إلى Azure Storage من خلال حساب تخزين. لهذا التشغيل السريع، قم بإنشاء حساب تخزين باستخدام مدخل Microsoft Azure أو Azure PowerShell أو Azure CLI. للحصول على مساعدة في إنشاء حساب تخزين، راجع إنشاء حساب تخزين.
إعداد البيئة الخاصة بك لـ Azure CLI
استخدم بيئة Bash في Azure Cloud Shell. لمزيد من المعلومات، راجع بدء استخدام Azure Cloud Shell.
إذا كنت تفضل تشغيل أوامر مرجع CLI محلياً قم بتثبيت CLI Azure. إذا كنت تعمل على نظام تشغيل Windows أو macOS، ففكر في تشغيل Azure CLI في حاوية Docker. لمزيد من المعلومات، راجع كيفية تشغيل Azure CLI في حاوية Docker.
إذا كنت تستخدم تثبيت محلي، يُرجى تسجيل الدخول إلى Azure CLI مستخدمًا أمر az login. لإنهاء عملية المصادقة، اتبع الخطوات المعروضة في جهازك. للحصول على خيارات تسجيل الدخول الأخرى، راجع المصادقة على Azure باستخدام Azure CLI.
عندما يُطلب منك، قم بتثبيت ملحق Azure CLI عند الاستخدام لأول مرة. لمزيد من المعلومات حول الملحقات، راجع استخدام الملحقات وإدارتها باستخدام Azure CLI.
يُرجى تشغيل إصدار az للوصول إلى الإصدار والمكتبات التابعة التي تم تثبيتها. للتحديث لآخر إصدار، يُرجى تشغيل تحديث az.
- من الجيد دائما تثبيت أحدث إصدار من Azure CLI. إذا كنت تستخدم Azure Cloud Shell، يتم تثبيت أحدث إصدار بالفعل.
تخويل الوصول إلى تخزين Blob
يمكنك تخويل الوصول إلى تخزين Blob من Azure CLI إما باستخدام بيانات اعتماد Microsoft Entra أو باستخدام مفتاح الوصول إلى حساب التخزين. يوصى باستخدام بيانات اعتماد Microsoft Entra، وتستخدم أمثلة هذه المقالة معرف Microsoft Entra حصريا.
تدعم أوامر Azure CLI لعمليات البيانات مقابل تخزين Blob المعلمة --auth-mode ، والتي تمكنك من تحديد كيفية تخويل عملية معينة. قم بتعيين المعلمة --auth-mode إلى login للتفويض باستخدام بيانات اعتماد Microsoft Entra. لمزيد من المعلومات، راجع تخويل الوصول إلى بيانات الكائن الثنائي كبير الحجم أو قائمة الانتظار باستخدام Azure CLI.
قم بتشغيل login الأمر لفتح مستعرض والاتصال باشتراك Azure الخاص بك.
az login
إنشاء حاوية
لإنشاء حاوية باستخدام Azure CLI، قم باستدعاء الأمر az storage container create . يوضح المثال التالي ثلاثة خيارات لإنشاء حاويات كائن ثنائي كبير الحجم باستخدام az storage container create الأمر. ينشئ النهج الأول حاوية واحدة، بينما يستخدم النهجان المتبقيان عمليات البرمجة النصية Bash لأتمتة إنشاء الحاوية.
لاستخدام هذا المثال، قم بتوفير قيم للمتغيرات وتأكد من تسجيل الدخول. تذكَّر استبدال قيم العناصر النائبة في الأقواس بقيمك.
#!/bin/bash
storageAccount="<storage-account>"
containerName="demo-container-1"
containerPrefix="demo-container-"
# Approach 1: Create a container
az storage container create \
--name $containerName \
--account-name $storageAccount \
--auth-mode login
# Approach 2: Create containers with a loop
for value in {2..5}
do
az storage container create \
--name $containerPrefix$value \
--account-name $storageAccount \
--auth-mode login
done
# Approach 3: Create containers by splitting multiple values
containerList="${containerPrefix}6 ${containerPrefix}7 ${containerPrefix}8"
for container in $containerList
do
az storage container create \
--name $container \
--account-name $storageAccount \
--auth-mode login
done
قائمة الحاويات
استخدم الأمر az storage container list لاسترداد قائمة حاويات التخزين. لإرجاع قائمة بالحاويات التي تبدأ أسماؤها بسلسلة أحرف معينة، قم بتمرير السلسلة كقيمة المعلمة --prefix .
يمكن استخدام المعلمة --num-results للحد من عدد الحاويات التي يتم إرجاعها بواسطة الطلب. يحد Azure Storage من عدد الحاويات التي تم إرجاعها بواسطة عملية قائمة واحدة إلى 5000. يضمن هذا الحد استرداد كميات البيانات التي يمكن التحكم فيها. إذا تجاوز عدد الحاويات التي تم إرجاعها قيمة --num-results أو حد الخدمة، يتم إرجاع رمز مميز للاستمرار. يسمح لك هذا الرمز المميز باستخدام طلبات متعددة لاسترداد أي عدد من الحاويات.
يمكنك أيضا استخدام المعلمة --query لتنفيذ استعلام JMESPath على نتائج الأوامر. JMESPath هي لغة استعلام ل JSON تسمح لك بتحديد البيانات التي تم إرجاعها من إخراج CLI وتعديلها. يتم تنفيذ الاستعلامات على إخراج JSON قبل تهيئته. لمزيد من المعلومات، راجع كيفية الاستعلام عن إخراج أمر Azure CLI باستخدام استعلام JMESPath.
يسرد المثال التالي أولا الحد الأقصى لعدد الحاويات (وفقا لحد الخدمة). بعد ذلك ، يسرد ثلاث حاويات تبدأ أسماؤها بحاوية البادئة - من خلال توفير قيم للمعلمات --num-results و --prefix . أخيرا ، يتم سرد حاوية واحدة عن طريق توفير اسم حاوية معروف للمعلمة --prefix .
اقرأ المزيد عن قائمة حاويات تخزين az.
#!/bin/bash
storageAccount="<storage-account>"
containerPrefix="demo-container-"
containerName="demo-container-1"
numResults="3"
# Approach 1: List maximum containers
az storage container list \
--account-name $storageAccount \
--auth-mode login
# Approach 2: List a defined number of named containers
az storage container list \
--prefix $containerPrefix \
--num-results $numResults \
--account-name $storageAccount \
--auth-mode login
# Approach 3: List an individual container
az storage container list \
--prefix $containerPrefix \
--query "[?name=='$containerName']" \
--account-name $storageAccount \
--auth-mode login
قراءة خصائص الحاوية والبيانات الوصفية
تعرض الحاوية كلا من خصائص النظام وبيانات التعريف المحددة من قبل المستخدم. توجد خصائص النظام على كل مورد تخزين كائن ثنائي كبير الحجم. بعض الخصائص للقراءة فقط، بينما يمكن قراءة البعض الآخر أو تعيينه. تحت الأغطية ، يتم تعيين بعض خصائص النظام إلى رؤوس HTTP قياسية معينة.
تتكون بيانات التعريف المعرفة من قبل المستخدم من زوج واحد أو أكثر من الاسم والقيمة التي تحددها لمورد تخزين كائن ثنائي كبير الحجم. يمكنك استخدام بيانات التعريف لتخزين قيم إضافية مع المورد. قيم بيانات التعريف هي لأغراضك فقط، ولا تؤثر على كيفية تصرف المورد.
خصائص الحاوية
لعرض خصائص حاوية باستخدام Azure CLI، قم باستدعاء الأمر az storage container show .
في المثال التالي، يعرض النهج الأول خصائص حاوية واحدة مسماة. بعد ذلك ، يسترد جميع الحاويات التي تحتوي على بادئة الحاوية التجريبية ويكرر من خلالها ، ويسرد خصائصها. تذكر استبدال قيم العناصر النائبة بقيمك الخاصة.
#!/bin/bash
storageAccount="<storage-account>"
containerPrefix="demo-container-"
containerName="demo-container-1"
# Show a named container's properties
az storage container show \
--name $containerName \
--account-name $storageAccount \
--auth-mode login
# List several containers and show their properties
containerList=$(az storage container list \
--query "[].name" \
--prefix $containerPrefix \
--account-name $storageAccount \
--auth-mode login \
--output tsv)
for row in $containerList
do
tmpRow=$(echo $row | sed -e 's/\r//g')
az storage container show --name $tmpRow --account-name $storageAccount --auth-mode login
done
قراءة بيانات تعريف الحاوية وكتابتها
يمكن للمستخدمين الذين لديهم عدة آلاف من الكائنات داخل حساب التخزين الخاص بهم تحديد موقع حاويات معينة بسرعة بناء على بيانات التعريف الخاصة بهم. لقراءة البيانات الوصفية، ستستخدم الأمر az storage container metadata show . لتحديث البيانات الوصفية، ستحتاج إلى استدعاء الأمر az storage container metadata update . تقبل الطريقة فقط أزواج قيم المفاتيح المفصولة بمسافات. لمزيد من المعلومات، راجع وثائق البيانات الوصفية لحاوية التخزين az .
يقوم المثال الأول أدناه بتحديث البيانات الوصفية للحاوية المسماة ثم استردادها. المثال الثاني يكرر قائمة الحاويات المطابقة للقيمة -prefix . الحاويات التي تحتوي على أرقام زوجية لها مجموعة بيانات التعريف الخاصة بها مع القيم المضمنة في متغير البيانات الوصفية .
#!/bin/bash
storageAccount="<storage-account>"
containerName="demo-container-1"
containerPrefix="demo-container-"
# Create metadata string
metadata="key=value pie=delicious"
# Update named container metadata
az storage container metadata update \
--name $containerName \
--metadata $metadata \
--account-name $storageAccount \
--auth-mode login
# Display metadata
az storage container metadata show \
--name $containerName \
--account-name $storageAccount \
--auth-mode login
# Get list of containers
containerList=$(az storage container list \
--query "[].name" \
--prefix $containerPrefix \
--account-name $storageAccount \
--auth-mode login \
--output tsv)
# Update and display metadata
for row in $containerList
do
#Get the container's number
tmpName=$(echo $row | sed -e 's/\r//g')
if [ `expr ${tmpName: ${#containerPrefix}} % 2` == 0 ]
then
az storage container metadata update \
--name $tmpName \
--metadata $metadata \
--account-name $storageAccount \
--auth-mode login
echo $tmpName
az storage container metadata show \
--name $tmpName \
--account-name $storageAccount \
--auth-mode login
fi
done
حذف الحاويات
استنادا إلى حالة الاستخدام الخاصة بك، يمكنك حذف حاوية واحدة أو مجموعة من الحاويات باستخدام az storage container delete الأمر. عند حذف قائمة الحاويات، ستحتاج إلى استخدام العمليات الشرطية كما هو موضح في الأمثلة أدناه.
تحذير
قد يؤدي تشغيل الأمثلة التالية إلى حذف الحاويات والكائنات الثنائية كبيرة الحجم نهائيا. توصي Microsoft بتمكين الحذف المبدئي للحاوية لحماية الحاويات والكائنات الثنائية كبيرة الحجم من الحذف العرضي. لمزيد من المعلومات، راجع الحذف المبدئي للحاويات.
#!/bin/bash
storageAccount="<storage-account>"
containerName="demo-container-1"
containerPrefix="demo-container-"
# Delete a single named container
az storage container delete \
--name $containerName \
--account-name $storageAccount \
--auth-mode login
# Delete containers by iterating a loop
list=$(az storage container list \
--query "[].name" \
--prefix $containerPrefix \
--account-name $storageAccount \
--auth-mode login \
--output tsv)
for row in $list
do
tmpName=$(echo $row | sed -e 's/\r//g')
az storage container delete \
--name $tmpName \
--account-name $storageAccount \
--auth-mode login
done
إذا كان لديك تمكين الحذف المبدئي للحاوية لحساب التخزين الخاص بك، فمن الممكن استرداد الحاويات التي تم حذفها. إذا تم تمكين خيار حماية البيانات للحذف المبدئي لحساب التخزين الخاص بك، فستقوم المعلمة --include-deleted بإرجاع الحاويات المحذوفة خلال فترة الاستبقاء المقترنة. لا يمكن استخدام المعلمة --include-deleted إلا لإرجاع الحاويات عند استخدامها مع المعلمة --prefix . لمعرفة المزيد حول الحذف المبدئي، ارجع إلى مقالة الحذف المبدئي للحاويات .
استخدم المثال التالي لاسترداد قائمة بالحاويات المحذوفة خلال فترة الاستبقاء المقترنة بحساب التخزين.
#!/bin/bash
storageAccount="<storage-account>"
containerPrefix="demo-container-"
# Retrieve a list of containers including those recently deleted
az storage container list \
--prefix $containerPrefix \
--include-deleted \
--account-name $storageAccount\
--auth-mode login
استعادة حاوية محذوفة مبدئيا
كما هو مذكور في قسم قائمة الحاويات ، يمكنك تكوين خيار حماية البيانات للحذف المبدئي على حساب التخزين الخاص بك. عند التمكين، من الممكن استعادة الحاويات المحذوفة خلال فترة الاستبقاء المقترنة. قبل أن تتمكن من اتباع هذا المثال، ستحتاج إلى تمكين الحذف المبدئي وتكوينه على حساب واحد على الأقل من حسابات التخزين الخاصة بك.
توضح الأمثلة التالية كيفية استعادة حاوية محذوفة مبدئيا باستخدام az storage container restore الأمر. ستحتاج إلى توفير قيم لمعلمات --name و --version لضمان استعادة الإصدار الصحيح من الحاوية. إذا كنت لا تعرف رقم الإصدار، فيمكنك استخدام الأمر az storage container list لاسترداده كما هو موضح في المثال الأول. يبحث المثال الثاني عن جميع الحاويات المحذوفة ويستعيدها داخل حساب تخزين معين.
لمعرفة المزيد حول خيار حماية بيانات الحذف المبدئي، راجع مقالة الحذف المبدئي للحاويات .
#!/bin/bash
storageAccount="<storage-account>"
containerName="demo-container-1"
# Restore an individual named container
containerVersion=$(az storage container list \
--account-name $storageAccount \
--query "[?name=='$containerName'].[version]" \
--auth-mode login \
--output tsv \
--include-deleted | sed -e 's/\r//g')
az storage container restore \
--name $containerName \
--deleted-version $containerVersion \
--account-name $storageAccount \
--auth-mode login
# Restore a list of deleted containers
containerList=$(az storage container list \
--account-name $storageAccount \
--include-deleted \
--auth-mode login \
--query "[?deleted].{name:name,version:version}" \
-o json)
for row in $(echo "${containerList}" | jq -c '.[]' )
do
tmpName=$(echo $row | jq -r '.name')
tmpVersion=$(echo $row | jq -r '.version')
az storage container restore \
--account-name $storageAccount \
--name $tmpName \
--deleted-version $tmpVersion \
--auth-mode login
done
الحصول على توقيع وصول مشترك لحاوية
يوفر توقيع الوصول المشترك (SAS) وصولا مفوضا إلى موارد Azure. يمنحك SAS تحكما دقيقا في كيفية وصول العميل إلى بياناتك. على سبيل المثال، يمكنك تحديد الموارد المتوفرة للعميل. يمكنك أيضا تحديد أنواع العمليات التي يمكن للعميل تنفيذها، وتحديد الفاصل الزمني الذي يكون SAS صالحا خلاله.
يستخدم SAS بشكل شائع لتوفير وصول مؤقت وآمن لعميل لا يكون لديه أذونات عادة. لإنشاء خدمة أو حساب SAS، ستحتاج إلى توفير قيم للمعلمات --account-name و --account-key . مثال على هذا السيناريو هو الخدمة التي تسمح للمستخدمين بقراءة بياناتهم الخاصة وكتابتها إلى حساب التخزين الخاص بك.
يدعم Azure Storage ثلاثة أنواع من توقيعات الوصول المشتركة: تفويض المستخدم والخدمة وSAS للحساب. لمزيد من المعلومات حول توقيعات الوصول المشتركة، راجع مقالة منح وصول محدود إلى موارد Azure Storage باستخدام توقيعات الوصول المشتركة .
تنبيه
يمكن لأي عميل يمتلك SAS صالح الوصول إلى البيانات الموجودة في حساب التخزين الخاص بك على النحو المسموح به في SAS هذا. من المهم حماية SAS من الاستخدام الضار أو غير المقصود. استخدم السلطة التقديرية في توزيع SAS، ووضع خطة لإبطال SAS المخترق.
يوضح المثال التالي عملية تكوين خدمة SAS لحاوية معينة باستخدام الأمر az storage container generate-sas . نظرا لأنه يقوم بإنشاء خدمة SAS، يسترد المثال أولا مفتاح حساب التخزين لتمريره كقيمة --account-key .
سيقوم المثال بتكوين SAS مع أوقات البدء وانتهاء الصلاحية وبروتوكول. سيحدد أيضا أذونات الحذفوالقراءةوالكتابةوالقائمة في SAS باستخدام المعلمة --permissions . يمكنك الرجوع إلى جدول الأذونات الكامل في مقالة إنشاء خدمة SAS .
انسخ قيمة الرمز المميز Blob SAS والصقها في موقع آمن. سيتم عرضه مرة واحدة فقط ولا يمكن استرداده بمجرد إغلاق Bash. لإنشاء عنوان URL SAS، قم بإلحاق رمز SAS المميز (URI) بعنوان URL لخدمة التخزين.
#!/bin/bash
storageAccount="<storage-account>"
containerName="demo-container-1"
permissions="drwl"
expiry=`date -u -d "30 minutes" '+%Y-%m-%dT%H:%MZ'`
accountKey=$(az storage account keys list \
--account-name $storageAccount \
--query "[?permissions == 'FULL'].[value]" \
--output tsv)
accountKey=$( echo $accountKey | cut -d' ' -f1 )
az storage container generate-sas \
--name $containerName \
--https-only \
--permissions dlrw \
--expiry $expiry \
--account-key $accountKey \
--account-name $storageAccount
إشعار
لا يتضمن رمز SAS المميز الذي تم إرجاعه بواسطة Azure CLI حرف المحدد ('?') لسلسلة استعلام عنوان URL. إذا كنت تقوم بإلحاق رمز SAS المميز بعنوان URL للمورد، فتذكر إلحاق حرف المحدد بعنوان URL للمورد قبل إلحاق الرمز المميز SAS.
الخطوات التالية
في هذه المقالة الإرشادية، تعلمت كيفية إدارة الحاويات في Blob Storage. لمعرفة المزيد حول العمل مع تخزين الكائن الثنائي كبير الحجم باستخدام Azure CLI، حدد خيارا أدناه.