Azure Depolama API'leri ile etkileşime girin

Tamamlandı

Azure Depolama, kapsayıcılar ve her hesapta depolanan verilerle çalışmak için bir REST API'si sağlar. Depolayabileceğiniz her veri türünün kendi bağımsız API'leri vardır. Dört veri türümüz olduğunu hatırlayın:

  • Bloblar, ikili dosyalar veya metin dosyaları gibi yapılandırılmamış veriler için.
  • Kuyruklar, kalıcı mesajlaşma için.
  • Tablolar, anahtar/değer çiftlerinin yapılandırılmış depolaması için.
  • Dosyalar, geleneksel SMB dosya paylaşımları için.

REST API’sini kullanma

Depolama REST API'lerine, HTTP/HTTPS isteği gönderebilen ve HTTP/HTTPS yanıtı alabilen herhangi bir uygulama tarafından İnternet'in her yerinden erişilebilir.

Örneğin, bir kapsayıcıdaki tüm blobları listelemek istiyorsanız aşağıdaki gibi bir istek oluşturursunuz:

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

Bu istek, hesaba özgü verileri içeren bir XML bloğu döndürür:

<?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>  

Ancak bu yaklaşım, her API ile çalışmak için el ile ayrıştırma ve HTTP paketleri oluşturma gerektirir. Bu nedenle, Azure yaygın diller ve çerçeveler için hizmetle çalışmayı kolaylaştıran, önceden derlenmiş istemci kitaplıkları sağlar.

İstemci kitaplığı kullanma

API test edildiğinden ve genellikle REST API tarafından gönderilen ve alınan veri modellerinin çevresinde daha iyi sarmalayıcılar sağladığından, istemci kitaplıkları uygulama geliştiricileri için önemli miktarda çalışmadan tasarruf edebilir.

Microsoft,aşağıdakiler dahil olmak üzere birçok dili ve çerçeveyi destekleyen Azure istemci kitaplıklarına sahiptir:

  • .NET
  • Java
  • Python
  • Node.js
  • Go


Logos of supported frameworks you can use with Azure.

Örneğin, C# dilinde aynı blob listesini almak için aşağıdaki kod parçacığını kullanabiliriz:

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}");
}

Öte yandan JavaScript'te:

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}`);
}

Dekont

İstemci kitaplıkları YALNıZCA REST API çevresindeki ince sarmalayıcılardır . Web hizmetlerini doğrudan kullanıyorsanız tam olarak sizin yaptığınız şeyi yapıyorlar. Bu kitaplıklar aynı zamanda açık kaynaklı olduklarından çok saydamdır. GitHub'da bu kitaplıkların kaynak kodunun bağlantıları için bu modülün sonundaki Ek Kaynaklar bölümüne bakın.

Şimdi uygulamanıza istemci kitaplığı desteği ekleyelim.