Share This Post

.NET / Azure / C#

C# ile Azure Storage Resim Yükleme

Merhabalar;
Bu yazımda örnek bir C# console application proje oluşturarak bilgisayarımızda bulunan bir klasördeki resim dosyalarının Azure BlobStorage’a aktarılmasını sağlayacağız.

C# Projemize Github adresimden ulaşabilirsiniz.

Bunun için öncelikle Azure portaldan Storage Account oluşturuyoruz.

Gerekli alanları doldurarak, Hesap Türü olarak “BlobStorage” seçiyoruz ve oluşturmayı tamamlıyoruz.

Oluşturma işlemini tamamladıktan sonra Kaynak Grubumuza giderek gerekli Connection Stringi almamız gerekiyor, bunu kopyalayarak bir yere not edelim.

C# Projemizi Oluşturuyoruz;

Ben demoyu Console Application olarak oluşturacağım, bu nedenle Visual Studio ile bir Console projesi açıyoruz.

Projemizde WindowsAzure.Storage nuget paketini yüklüyoruz, Github’da bulunan projemi olduğu gibi kullanabilir veya yeni proje oluşturuyorsanız bu nuget paketini yüklemeyi unutmamanız gerekli.

Kodlarımız Aşağıda;

public static class Program
    {
        // Create a folder and add some images to it 
        const string FolderPath = @"C:\testStorage";

        // this is the conn string found within your storage aggaount under blob storage access keys
        // TODO - move this to azure keyvault in next steps
        private const string connstring = "<YourConnectionString>";

        public static void Main()
        {
            Console.WriteLine("Azure Blob Storage Resim Yükleme Demosu");
            Console.WriteLine();
            ProcessAsync().GetAwaiter().GetResult();

            Console.WriteLine("Press any key to exit the application.");
            Console.ReadLine();
        }

        private static async Task ProcessAsync()
        {
            string storageConnectionString = connstring;

            if (CloudStorageAccount.TryParse(storageConnectionString, out var storageAccount))
            {
                try
                {
                    var blobClient = storageAccount.CreateCloudBlobClient();

                    var cloudBlobContainer = blobClient.GetContainerReference("xmasimages-container");
                    await cloudBlobContainer.CreateIfNotExistsAsync();

                    var permissions = new BlobContainerPermissions
                    {
                        PublicAccess = BlobContainerPublicAccessType.Blob
                    };
                    await cloudBlobContainer.SetPermissionsAsync(permissions);

                    foreach (var filePath in Directory.GetFiles(FolderPath, "*.*", SearchOption.AllDirectories))
                    {
                        var blob = cloudBlobContainer.GetBlockBlobReference(filePath);
                        await blob.UploadFromFileAsync(filePath);

                        Console.WriteLine("Uploaded {0}", filePath);
                    }

                    Console.WriteLine("Yükleme işlemi tamamlandı");
                }
                catch (StorageException ex)
                {
                    Console.WriteLine("Servisden hata döndü: {0}", ex.Message);
                }
            }
        }
    }

Burada kendi kaynağınızın Connection Stringini girmeniz gerekmektedir.

Uygulama da belirttiğiniz klasöre birkaç resim koyarak uygulamayı çalıştırdığımızda resimler Azure Storage tarafına upload edilecektir.

Yüklediğiniz resimleri Azure Storage Explorer kullanarak görüntüleyebilirsiniz.

Bu örneği kullanarak özel projeleriniz de Azure BlobStorage ile nasıl çalışabileceğimizi ve dosya upload edebileceğimizi öğrenmiş olduk.

Share This Post

Yazılım felan filan...

Leave a Reply