إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يتم تنظيم الكائنات الثنائية في تخزين Azure ضمن حاويات. قبل أن تتمكن من تحميل كائن ثنائي كبير الحجم، عليك أولاً إنشاء حاوية. توضح هذه المقالة كيفية إنشاء حاويات باستخدام مكتبة عميل Azure Storage ل Python.
للتعرف على إنشاء حاويات كائن ثنائي كبير الحجم باستخدام واجهات برمجة التطبيقات غير المتزامنة، راجع إنشاء حاوية بشكل غير متزامن.
المتطلبات الأساسية
- اشتراك Azure - إنشاء اشتراك مجاني
- حساب تخزين Azure - إنشاء حساب تخزين
- بايثون 3.8+
إعداد بيئتك
إذا لم يكن لديك مشروع موجود، يوضح لك هذا القسم كيفية إعداد مشروع للعمل مع مكتبة عميل Azure Blob Storage ل Python. لمزيد من التفاصيل، راجع بدء استخدام Azure Blob Storage وPython.
لاستخدام أمثلة التعليمات البرمجية في هذه المقالة، اتبع هذه الخطوات لإعداد مشروعك.
تثبيت الحزم
قم بتثبيت الحزم التالية باستخدام pip install:
pip install azure-storage-blob azure-identity
إضافة عبارات الاستيراد
أضف عبارات import التالية:
from azure.core.exceptions import ResourceExistsError
from azure.identity import DefaultAzureCredential
from azure.storage.blob import BlobServiceClient
التصريح
يجب أن يكون لآلية التخويل الأذونات اللازمة لإنشاء حاوية. للحصول على تخويل باستخدام معرف Microsoft Entra (مستحسن)، تحتاج إلى دور Azure RBAC المضمن في Storage Blob Data Contributor أو أعلى. لمعرفة المزيد، راجع إرشادات التخويل لإنشاء حاوية (REST API) .
إنشاء كائن عميل
لتوصيل تطبيق ب Blob Storage، قم بإنشاء مثيل BlobServiceClient. يوضح المثال التالي كيفية إنشاء كائن عميل باستخدام DefaultAzureCredential للتخويل:
# TODO: Replace <storage-account-name> with your actual storage account name
account_url = "https://<storage-account-name>.blob.core.windows.net"
credential = DefaultAzureCredential()
# Create the BlobServiceClient object
blob_service_client = BlobServiceClient(account_url, credential=credential)
يمكنك أيضا إنشاء كائنات العميل لحاويات أو كائنات ثنائية كبيرة الحجم معينة، إما مباشرة أو من BlobServiceClient العنصر. لمعرفة المزيد حول إنشاء كائنات العميل وإدارتها، راجع إنشاء كائنات العميل التي تتفاعل مع موارد البيانات وإدارتها.
حول تسمية الحاوية
يجب أن يكون اسم الحاوية اسم DNS صالحاً، لأنه يشكل جزءاً من عنوان URI الفريد المستخدم لمعالجة الحاوية أو كائناتها الثنائية كبيرة الحجم. اتبع هذه القواعد عند تسمية حاوية:
- يمكن اختيار أسماء الحاويات بحيث يتراوح طولها بين 3 أحرف و63 حرفاً.
- يجب أن تبدأ أسماء الحاويات بحرف أو رقم، ويمكن أن تحتوي فقط على أحرف صغيرة و أرقام وحرف الشرطة (-).
- لا يسمح بأحرف الشرطة المتتالية في أسماء الحاويات.
يتم تنسيق URI لمورد حاوية كما يلي:
https://my-account-name.blob.core.windows.net/my-container-name
إنشاء حاوية
لإنشاء حاوية، قم باستدعاء الأسلوب التالي من فئة BlobServiceClient :
يمكنك أيضا إنشاء حاوية باستخدام الأسلوب التالي من فئة ContainerClient :
يتم إنشاء الحاويات مباشرةً أسفل حساب التخزين. ليس من الممكن وضع حاوية واحدة أسفل أخرى. يُسمح باستثناء إذا وُجدت بالفعل حاوية تحمل الاسم نفسه.
ينشئ المثال التالي حاوية من كائن BlobServiceClient :
def create_blob_container(self, blob_service_client: BlobServiceClient, container_name):
try:
container_client = blob_service_client.create_container(name=container_name)
except ResourceExistsError:
print('A container with this name already exists')
إنشاء حاوية الجذر
تعمل حاوية الجذر كحاوية افتراضية لحساب التخزين الخاص بك. قد يحتوي كل حساب تخزين على حاوية جذر واحدة، والتي يجب تسميتها «$root». يجب إنشاء حاوية الجذر أو حذفها بشكل صريح.
يمكنك الرجوع إلى نقطة مخزنة في حاوية الجذر دون تضمين اسم حاوية الجذر. تمكنك حاوية الجذر من الرجوع إلى نقطة في المستوى العلوي من التدرج الهرمي لحساب التخزين. على سبيل المثال، يمكنك الرجوع إلى كائن ثنائي كبير الحجم في حاوية الجذر كما يلي:
https://accountname.blob.core.windows.net/default.html
ينشئ المثال التالي كائنا جديدا ContainerClient باسم الحاوية $root، ثم ينشئ الحاوية إذا لم تكن موجودة بالفعل في حساب التخزين:
def create_blob_root_container(self, blob_service_client: BlobServiceClient):
container_client = blob_service_client.get_container_client(container="$root")
# Create the root container if it doesn't already exist
if not container_client.exists():
container_client.create_container()
قم بإنشاء حاوية بشكل غير متزامن
تدعم مكتبة عميل Azure Blob Storage ل Python إنشاء حاوية كائن ثنائي كبير الحجم بشكل غير متزامن. لمعرفة المزيد حول متطلبات إعداد المشروع، راجع البرمجة غير المتزامنة.
اتبع هذه الخطوات لإنشاء حاوية باستخدام واجهات برمجة التطبيقات غير المتزامنة:
إضافة عبارات الاستيراد التالية:
import asyncio from azure.identity.aio import DefaultAzureCredential from azure.storage.blob.aio import BlobServiceClient from azure.core.exceptions import ResourceExistsErrorأضف التعليمات البرمجية لتشغيل البرنامج باستخدام
asyncio.run. تقوم هذه الدالة بتشغيل coroutine الذي تم تمريره،main()في مثالنا، وتديرasyncioحلقة الحدث. يتم الإعلان عن Coroutines باستخدام بناء الجملة غير المتزامن/انتظار. في هذا المثال،main()يقوم coroutine أولا بإنشاء المستوىBlobServiceClientالأعلى باستخدامasync with، ثم يستدعي الأسلوب الذي ينشئ الحاوية. لاحظ أن عميل المستوى الأعلى فقط يحتاج إلى استخدامasync with، حيث يشارك العملاء الآخرون الذين تم إنشاؤهم منه نفس تجمع الاتصال.async def main(): sample = ContainerSamples() # TODO: Replace <storage-account-name> with your actual storage account name account_url = "https://<storage-account-name>.blob.core.windows.net" credential = DefaultAzureCredential() async with BlobServiceClient(account_url, credential=credential) as blob_service_client: await sample.create_blob_container(blob_service_client, "sample-container") if __name__ == '__main__': asyncio.run(main())إضافة تعليمة برمجية لإنشاء حاوية. التعليمات البرمجية هي نفس المثال المتزامن، باستثناء أن الأسلوب يتم تعريفه باستخدام
asyncالكلمة الأساسية ويتمawaitاستخدام الكلمة الأساسية عند استدعاءcreate_containerالأسلوب .async def create_blob_container(self, blob_service_client: BlobServiceClient, container_name): try: container_client = await blob_service_client.create_container(name=container_name) except ResourceExistsError: print('A container with this name already exists')
مع هذا الإعداد الأساسي في مكانه، يمكنك تنفيذ أمثلة أخرى في هذه المقالة ك coroutines باستخدام بناء الجملة غير المتزامن/انتظار.
الموارد
لمعرفة المزيد حول إنشاء حاوية باستخدام مكتبة عميل Azure Blob Storage ل Python، راجع الموارد التالية.
نماذج التعليمات البرمجية
- عرض نماذج التعليمات البرمجية المتزامنة أو غير المتزامنة من هذه المقالة (GitHub)
عمليات واجهة برمجة تطبيقات REST
يحتوي Azure SDK ل Python على مكتبات تستند إلى واجهة برمجة تطبيقات AZURE REST، مما يسمح لك بالتفاعل مع عمليات REST API من خلال نماذج Python المألوفة. تستخدم أساليب مكتبة العميل لإنشاء حاوية عملية REST API التالية:
- إنشاء حاوية (REST API)
موارد مكتبة العميل
المحتوى ذو الصلة
- هذه المقالة هي جزء من دليل مطور Blob Storage ل Python. لمعرفة المزيد، راجع القائمة الكاملة لمقالات دليل المطور في إنشاء تطبيق Python.