Yazılım

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.

Ali UYSAL

IT alanında 16 sene önce donanım ile başlayan tecrübem, network ve sonrasında iş analizi, yazılım geliştirme ve proje yöneticiliği alanlarında devam etmiştir. Endüstriyel yazılımlar, sahadan veri toplama ve analizleri, otomatik etiketleme ve barkod sistemleri, otomatik tartım ve robotik konularında tecrübe sahibiyim. Sanayi 4.0 kapsamında imalat sanayinin dijital dönüşümünde çok fazla projenin hayata geçmesini sağladım.Open Source projelerle uzun süre ilgilendim, analiz ve implementasyonu konularında tecrübe edindim. Bunlar dışında hobi amacıyla başlasam da sonradan ürüne dönüşen, geliştirme kartları ile farklı çalışmalarım olmuştur.Raspberry Pi üzerinde yaptığım donanımsal ve yazılımsal işler ile çok farklı ürünler ortaya çıkartarak tecrübe edindim.

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu