hızlı başlangıç: Xamarin ile Azure Blob Depolama istemci kitaplığı v12
Xamarin ile v12 istemci kitaplığı Depolama Azure Blob 'u kullanmaya başlayın. Azure Blob Depolama, Microsoft 'un bulut için nesne depolama çözümüdür. Paketi yüklemek ve temel görevler için örnek kodu denemek için adımları izleyin. Blob depolama, çok miktarda yapılandırılmamış veriyi depolamak için iyileştirilmiştir.
Xamarin ile Azure Blob Depolama istemci kitaplığı v12 kullanın:
- Kapsayıcı oluşturma
- Azure Depolama'ya blob yükleme
- Bir kapsayıcıdaki tüm Blobları listeleme
- Blob 'u cihazınıza indirin
- Kapsayıcı silme
Başvuru bağlantıları:
Önkoşullar
- Azure aboneliği- ücretsiz olarak bir tane oluşturun
- Azure depolama hesabı- depolama hesabı oluşturma
- .net iş yüküne yönelik mobil geliştirme veya Mac için Visual Studio Visual Studio
Ayarlanıyor
bu bölüm, Xamarin ile bir projeyi Azure Blob Depolama istemci kitaplığı v12 ile çalışacak şekilde hazırlama konusunda size yol gösterir.
Proje oluşturma
- Visual Studio açın ve boş bir form uygulaması oluşturun.
- Adlandırın: BlobQuickstartV12
Paketi yükler
- Çözüm Gezgini bölmesinde çözümünüze sağ tıklayın ve çözüm için NuGet paketlerini yönet' i seçin.
- Azure. Depolama araması yapın. Blob 'ları ve en son kararlı sürümü çözümünüzdeki tüm projelere yükler.
Uygulama çerçevesini ayarlama
BlobQuickstartV12 dizininden:
- Düzenleyicinizde MainPage. xaml dosyasını açın
- Öğeler arasındaki her şeyi kaldırın
<ContentPage></ContentPage>ve aşağıdaki kodla değiştirin:
<StackLayout HorizontalOptions="Center" VerticalOptions="Center">
<Button x:Name="uploadButton" Text="Upload Blob" Clicked="Upload_Clicked" IsEnabled="False"/>
<Button x:Name="listButton" Text="List Blobs" Clicked="List_Clicked" IsEnabled="False" />
<Button x:Name="downloadButton" Text="Download Blob" Clicked="Download_Clicked" IsEnabled="False" />
<Button x:Name="deleteButton" Text="Delete Container" Clicked="Delete_Clicked" IsEnabled="False" />
<Label Text="" x:Name="resultsLabel" HorizontalTextAlignment="Center" Margin="0,20,0,0" TextColor="Red" />
</StackLayout>
Azure portalından kimlik bilgilerinizi kopyalama
Örnek uygulama, Azure depolama 'ya istek yaptığında yetkilendirilmiş olmalıdır. Bir isteği yetkilendirmek için, depolama hesabı kimlik bilgilerinizi uygulamaya bağlantı dizesi olarak ekleyin. Bu adımları izleyerek depolama hesabı kimlik bilgilerinizi görüntüleyin:
Azure portalında oturum açın.
Depolama hesabınızı bulun.
Depolama hesabına genel bakışın Ayarlar bölümünde Erişim anahtarları’nı seçin. Burada, hesap erişim anahtarlarınızı ve her anahtar için tam bağlantı dizesini görüntüleyebilirsiniz.
key1 bölümünde Bağlantı dizesi değerini bulun ve Kopyala düğmesini seçerek bağlantı dizesini kopyalayın. Sonraki adımda bir ortam değişkenine bağlantı dizesini ekleyeceksiniz.

Depolama bağlantı dizelerinizi yapılandırma
Bağlantı dizenizi kopyaladıktan sonra, MainPage. xaml. cs dosyanızda bir sınıf düzeyi değişkenine ayarlayın. Mainpaage. xaml. cs dosyasını açın ve değişkenini bulun storageConnectionString . <yourconnectionstring>Gerçek bağlantı dizeniz ile değiştirin.
Kod şu şekildedir:
string storageConnectionString = "<yourconnectionstring>";
Nesne modeli
Azure Blob Depolama, büyük miktarlarda yapılandırılmamış verileri depolamak için iyileştirilmiştir. Yapılandırılmamış veriler, metin veya ikili veriler gibi belirli bir veri modeline veya tanıma bağlı olmayan verilerdir. BLOB depolama üç tür kaynak sunar:
- Depolama hesabı
- Depolama hesabındaki bir kapsayıcı
- Kapsayıcıda bir blob
Aşağıdaki diyagramda bu kaynaklar arasındaki ilişki gösterilmektedir.

Şu kaynaklarla etkileşim kurmak için aşağıdaki .NET sınıflarını kullanın:
- BlobServiceClient:
BlobServiceClientsınıfı, Azure Depolama kaynaklarını ve blob kapsayıcılarını değiştirmenize olanak sağlar. - blobcontainerclient:
BlobContainerClientsınıfı, Azure Depolama kapsayıcıları ve bloblarını değiştirmenize olanak sağlar. - blobclient:
BlobClientsınıfı, Azure Depolama bloblarını değiştirmenize olanak sağlar. - Blobdownloadınfo:
BlobDownloadInfosınıfı, blob indirilmeden döndürülen özellikleri ve içeriği temsil eder.
Kod örnekleri
bu örnek kod parçacıkları, bir Xamarin. Forms uygulamasında .net için Azure Blob Depolama istemci kitaplığı ile aşağıdaki görevlerin nasıl gerçekleştirileceğini gösterir:
- Sınıf düzeyi değişkenleri oluştur
- Kapsayıcı oluşturma
- blob 'ları bir kapsayıcıya Upload
- Kapsayıcıdaki blobları listeleme
- Blob’ları indirme
- Kapsayıcı silme
Sınıf düzeyi değişkenleri oluştur
Aşağıdaki kod birkaç sınıf düzeyi değişkenini bildirir. bu örneğin geri kalanı boyunca Azure Blob Depolama iletişim kurması gerekir.
Bunlar, depolama bağlantı dizesini yapılandırma bölümünde ayarlanan depolama hesabı için bağlantı dizesine ek niteliğindedir.
Bu kodu MainPage. xaml. cs dosyasında sınıf düzeyi değişkenleri olarak ekleyin:
string storageConnectionString = "{set in the Configure your storage connection string section}";
string fileName = $"{Guid.NewGuid()}-temp.txt";
BlobServiceClient client;
BlobContainerClient containerClient;
BlobClient blobClient;
Kapsayıcı oluşturma
Yeni kapsayıcı için bir ad belirleyin. Aşağıdaki kod, benzersiz olduğundan emin olmak için kapsayıcı adına bir GUID değeri ekler.
Önemli
Kapsayıcı adlarının küçük harfle yazılması gerekir. Kapsayıcıları ve blobları adlandırma hakkında daha fazla bilgi için bkz. Kapsayıcıları, Blobları ve Meta Verileri Adlandırma ve Bunlara Başvurma.
BlobServiceClient sınıfının bir örneğini oluşturun. Ardından, depolama hesabınızda kapsayıcıyı oluşturmak için Createblobcontainsısync yöntemini çağırın.
Bu kodu MainPage. xaml. cs dosyasına ekleyin:
protected async override void OnAppearing()
{
string containerName = $"quickstartblobs{Guid.NewGuid()}";
client = new BlobServiceClient(storageConnectionString);
containerClient = await client.CreateBlobContainerAsync(containerName);
resultsLabel.Text = "Container Created\n";
blobClient = containerClient.GetBlobClient(fileName);
uploadButton.IsEnabled = true;
}
blob 'ları bir kapsayıcıya Upload
Aşağıdaki kod parçacığı:
- Bir
MemoryStreammetin oluşturur. - Blobcontainerclient sınıfının uploadasync işlevini çağırarak metin dosyası adına ve metin Içine geçirerek metni bir bloba yükler
MemoryStream. Bu yöntem, daha önce oluşturulmadıysa bir blob oluşturur, aksi takdirde üzerine yazar.
Bu kodu MainPage. xaml. cs dosyasına ekleyin:
async void Upload_Clicked(object sender, EventArgs e)
{
using MemoryStream memoryStream = new MemoryStream(Encoding.UTF8.GetBytes("Hello World!"));
await containerClient.UploadBlobAsync(fileName, memoryStream);
resultsLabel.Text += "Blob Uploaded\n";
uploadButton.IsEnabled = false;
listButton.IsEnabled = true;
}
Kapsayıcıdaki blobları listeleme
Getblobsasync yöntemini çağırarak kapsayıcıdaki Blobları listeleyin. Bu durumda, kapsayıcıya yalnızca bir blob eklenmiş, bu nedenle listeleme işlemi yalnızca bir BLOB döndürüyor.
Bu kodu MainPage. xaml. cs dosyasına ekleyin:
async void List_Clicked(object sender, EventArgs e)
{
await foreach (BlobItem blobItem in containerClient.GetBlobsAsync())
{
resultsLabel.Text += blobItem.Name + "\n";
}
listButton.IsEnabled = false;
downloadButton.IsEnabled = true;
}
Blob’ları indirme
Downloadtoasync yöntemini çağırarak önceden oluşturulmuş blobu indirin. Örnek kod, bir Stream Blobun ilk önce bir ' a, MemoryStream sonra da metnin görüntülenebilmesi için bir öğesine kopyalar StreamReader .
Bu kodu MainPage. xaml. cs dosyasına ekleyin:
async void Download_Clicked(object sender, EventArgs e)
{
BlobDownloadInfo downloadInfo = await blobClient.DownloadAsync();
using MemoryStream memoryStream = new MemoryStream();
await downloadInfo.Content.CopyToAsync(memoryStream);
memoryStream.Position = 0;
using StreamReader streamReader = new StreamReader(memoryStream);
resultsLabel.Text += "Blob Contents: \n";
resultsLabel.Text += await streamReader.ReadToEndAsync();
resultsLabel.Text += "\n";
downloadButton.IsEnabled = false;
deleteButton.IsEnabled = true;
}
Kapsayıcı silme
Aşağıdaki kod, DeleteAsynckullanarak tüm kapsayıcıyı silerek uygulamanın oluşturduğu kaynakları temizler.
Uygulama ilk olarak blobu ve kapsayıcıyı silmeden önce onaylamanızı ister. Bu, kaynakların silinmeden önce doğru bir şekilde oluşturulduğunu doğrulamak iyi bir şansınız olur.
Bu kodu MainPage. xaml. cs dosyasına ekleyin:
async void Delete_Clicked(object sender, EventArgs e)
{
var deleteContainer = await Application.Current.MainPage.DisplayAlert("Delete Container",
"You are about to delete the container proceeed?", "OK", "Cancel");
if (deleteContainer == false)
return;
await containerClient.DeleteAsync();
resultsLabel.Text += "Container Deleted";
deleteButton.IsEnabled = false;
}
Kodu çalıştırma
Uygulama başlatıldığında, önce kapsayıcıyı göründüğü şekilde oluşturur. Daha sonra, Blobları karşıya yüklemek, listelemek, indirmek ve kapsayıcıyı silmek için düğmelere tıklacaksınız.
uygulamayı çalıştırmak için Windows F5 tuşuna basın. Uygulamayı Mac üzerinde çalıştırmak için cmd + ENTER tuşlarına basın.
Uygulama her işlemden sonra ekrana yazar. Uygulamanın çıktısı aşağıdaki örneğe benzer:
Container Created
Blob Uploaded
98d9a472-8e98-4978-ba4f-081d69d2e6f8-temp.txt
Blob Contents:
Hello World!
Container Deleted
Temizleme işlemine başlamadan önce, Blob içeriğinin ekrandaki çıkışının karşıya yüklenen değerle eşleştiğini doğrulayın.
Değerleri doğruladıktan sonra, kapsayıcıyı silme ve tanıtımı bitiş uyarısını onaylayın.
Sonraki adımlar
bu hızlı başlangıçta, Xamarin ile Azure Blob Depolama istemci kitaplığı v12 kullanarak blobları karşıya yükleme, indirme ve listeleme hakkında daha fazla öğrendiniz.
Blob depolama örnek uygulamalarını görmek için devam edin:
- Öğreticiler, örnekler, hızlı başlangıçlar ve diğer belgeler için mobil geliştiriciler için Azure'ı ziyaret edin.
- Xamarin hakkında daha fazla bilgi edinmek için bkz. Xamarin ile çalışmaya başlama.