التفاعل مع واجهات برمجة التطبيقات لتخزين Azure

مكتمل

يوفر تخزين Azure واجهة برمجة تطبيقات REST للعمل مع الحاويات والبيانات المخزنة في كل حساب. كل نوع من البيانات التي يمكنك تخزينها لديها API مستقلة خاصة بها. تذكر أن لدينا أربعة أنواع بيانات محددة:

  • الكائنات الثنائية كبيرة الحجم غير المصنفة، مثل الملفات الثنائية والنصوص.
  • قوائم الانتظار للرسائل المستمرة.
  • الجداول للتخزين منظّم البنية للمفتاح / للقيم.
  • الملفات مشاركات الملفات التقليدية لبروتوكول Server Message Block.

استخدام واجهة برمجة تطبيقات REST

يمكن الوصول إلى واجهات برمجة تطبيقات REST للتخزين من أي مكان على الإنترنت، من خلال أي تطبيق يمكنه إرسال طلب HTTP/HTTPS وتلقي استجابة HTTP/HTTPS.

على سبيل المثال، إذا كنت تريد سرد جميع الكائنات الثنائية كبيرة الحجم في حاوية، يمكنك إنشاء طلب مثل:

GET https://[url-for-service-account]/?comp=list&include=metadata

سيؤدي هذا الطلب إلى إرجاع كتلة XML مع بيانات خاصة بالحساب:

<?xml version="1.0" encoding="utf-8"?>  
<EnumerationResults AccountName="https://[url-for-service-account]/">  
  <Containers>  
    <Container>  
      <Name>container1</Name>  
      <Url>https://[url-for-service-account]/container1</Url>  
      <Properties>  
        <Last-Modified>Sun, 24 Sep 2018 18:09:03 GMT</Last-Modified>  
        <Etag>0x8CAE7D0C4AF4487</Etag>  
      </Properties>  
      <Metadata>  
        <Color>orange</Color>  
        <ContainerNumber>01</ContainerNumber>  
        <SomeMetadataName>SomeMetadataValue</SomeMetadataName>  
      </Metadata>  
    </Container>  
    <Container>  
      <Name>container2</Name>  
      <Url>https://[url-for-service-account]/container2</Url>  
      <Properties>  
        <Last-Modified>Sun, 24 Sep 2018 17:26:40 GMT</Last-Modified>  
        <Etag>0x8CAE7CAD8C24928</Etag>  
      </Properties>  
      <Metadata>  
        <Color>pink</Color>  
        <ContainerNumber>02</ContainerNumber>  
        <SomeMetadataName>SomeMetadataValue</SomeMetadataName>  
      </Metadata>  
    </Container>  
    <Container>  
      <Name>container3</Name>  
      <Url>https://[url-for-service-account]/container3</Url>  
      <Properties>  
        <Last-Modified>Sun, 24 Sep 2018 17:26:40 GMT</Last-Modified>  
        <Etag>0x8CAE7CAD8EAC0BB</Etag>  
      </Properties>  
      <Metadata>  
        <Color>brown</Color>  
        <ContainerNumber>03</ContainerNumber>  
        <SomeMetadataName>SomeMetadataValue</SomeMetadataName>  
      </Metadata>  
    </Container>  
  </Containers>  
  <NextMarker>container4</NextMarker>  
</EnumerationResults>  

ومع ذلك، يتطلب هذا الأسلوب التحليل اليدوي وإنشاء حزم HTTP للعمل مع كل واجهة برمجة تطبيقات. لهذا السبب، يوفر Azure مكتبات العميل التي يتم إنشاؤها مسبقًا وتجعل العمل مع الخدمة أسهل للغات وأطر العمل المشتركة.

استخدام مكتبة عميل

يمكن لمكتبات العميل حفظ كمّ كبير من العمل لمطوري التطبيقات لأنه تم اختبار واجهة برمجة التطبيقات وغالباً ما توفر برامج تضمين أفضل حول نماذج البيانات المرسلة والمستلمة بواسطة واجهة برمجة التطبيقات REST.

لدى Microsoft مكتبات عميل Azure التي تدعم عدداً من اللغات وأُطر العمل، بما في ذلك:

  • .NET
  • Java
  • Python
  • Node.js
  • انتقال


Logos of supported frameworks you can use with Azure.

على سبيل المثال، لاسترداد قائمة الكائنات الثنائية كبيرة الحجم نفسها في C#، يمكننا استخدام القصاصة البرمجية التالية:

string containerName = "...";
BlobContainerClient container = new BlobContainerClient(connectionString, containerName);

var blobs = container.GetBlobs();
foreach (var blob in blobs)
{
    Console.WriteLine($"{blob.Name} --> Created On: {blob.Properties.CreatedOn:YYYY-MM-dd HH:mm:ss}  Size: {blob.Properties.ContentLength}");
}

أو في JavaScript:

const containerName = '...';
const containerClient = blobServiceClient.getContainerClient(containerName);

let blobs = containerClient.listBlobsFlat();
for await (const blob of blobs) {
  console.log(`${blob.name} --> Created: ${blob.properties.createdOn}   Size: ${blob.properties.contentLength}`);
}

إشعار

مكتبات العميل عبارة فقط عن برامج تضمين رقيقة حول واجهة برمجة تطبيقات REST. إنهم يفعلون بالضبط ما كنت ستفعله إذا استخدمت خدمات الويب مباشرة. هذه المكتبات أيضًا ذات مصدر مفتوح، ما يجعلها شفافة جدًا. للحصول على ارتباطات إلى التعليمات البرمجية المصدر لهذه المكتبات على GitHub، راجع قسم الموارد الإضافية في نهاية هذه الوحدة النمطية.

بعد ذلك، دعنا نضيف دعم مكتبة العميل إلى تطبيقك.