ben

OMÜ , Bilgisayar Mühendisliği, 13'

18 Ekim 2017 Çarşamba

cloudinary

  Nedir Cloudinary? projelerinizde resim  video belki ses dosyaları gibi media dosyalarını kullanmanız hatta veritabanınızda depolamanız gerekebilir. Veritabanında (sql server) file stream ile aldıgınızda resim dosyalarınızı byte turune cevirir ve bu sekilde tutar. resmi kullanmak için çağırdığınızda yine bir suru işlemden geçerek resim olarak elinize gecer. Bu surec bir cok acıdan maliyet ve veritabanınızın bir süre sonra boyut olarak artması ve hantallaşması demektir.

İşte tam bu noktada cloudinary derdimize derman olabilir. free olarak belli bir boyuta izin veriyor. örneğin 4 binlik bir resim üzerinden deneme yaptığımda ücretsiz kısmı hiç sorun cıkarmadı. öncelikle sisteme üye olmanız gerekiyor. daha sonra mail adresinize gelen doğrulama kodu ile doğrulayın yoksa çalışmıyor.

link: https://cloudinary.com

Cloudinary sistemini daha önce ubuntu -Rubyonrails tarafında kullandım ve bu blog altında ufak tefek şeyler paylaşmıştım. aynı işlemi .net ortamında yeniden kullanmak için ufak bir deneme yaptım.

visual studio 2017 platformunda yeni bir proje açalım.


yeni açtığımız projeye nuget yardımı ile CloudinaryDotNet kütüphanesini ekleyelim.


Formumuza bir buton bir label ve picturebox ekleyelim. Butona tıkladığımızda seçtiğimiz resmi cloudinarye yukledikten sonra oluşan url yi pictureboxta göstermesini istiyorum


butonun click özelliğine gidip komutlarımı yazmaya başlayalım.

kullanacağımız kütüphanelerimizi ekleyelim:

using CloudinaryDotNet;
using CloudinaryDotNet.Actions;
using System.Net;
using System.IO;

Clodinary hesap bilgilerimizi aşağıdaki alanlara yazın. her hesabın kendisine ait id secret bilgileri vardır. Cloudinary hesabınıza girdiğinizde Account Details kısmında yer alır.

 Account account = new Account(
          "my_cloud_name", "my_api_key","my_api_secret");         

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog file = new OpenFileDialog();
            file.Title = "Resim Seçiniz..";

            if (file.ShowDialog() == DialogResult.OK)
            {
                Cloudinary cloudinary = new Cloudinary(account);
                var uploadParams = new ImageUploadParams()
                {
                    File = new FileDescription(file.FileName)
                };
                var uploadResult = cloudinary.Upload(uploadParams);

                label2.Text = uploadResult.SecureUri.AbsoluteUri;

                WebRequest req = WebRequest.Create(uploadResult.SecureUri.AbsoluteUri);
                WebResponse res = req.GetResponse();
                Stream imgStream = res.GetResponseStream();

                Image img1 = Image.FromStream(imgStream);
                imgStream.Close();

                pictureBox1.Image = img1;
            }

Çalıştırıp bakalım:








  Resmimiz yüklendi. Bu işlem tek başına ifade etmeyebilir. Fakat , örneğin bir program yazdığınızda kullanıcıların profil resimlerini tutmak isteyebilirsiniz . bu durumda her kullanıcının resmini veritabanında tutmak yerine veritabanında profile_url alanı açıp, cloudinary'e  yuklenen resimlerin url adreslerini bu alana kaydedebilirsiniz. 

1 yorum:

Adsız dedi ki...

Teşekkürler Esra Hanım, güzel anlatım olmuş.