TCP / IP bağlantısı üzerinden bir sunucudan başka bir sunucuya dosya göndermek veya almak için FTP kullanılmaktadır.Python'un FTP ile çalışmayı kolaylaştıran bir dizi işlevsellik sağlayan ftplib kütüphanesini kullanacağız. Sunucudan dosya yükleme ve indirme işleminde 

Python ile Ftp Kullanımı ( ftplib )

TCP / IP bağlantısı üzerinden bir sunucudan başka bir sunucuya dosya göndermek veya almak için FTP kullanılmaktadır.Python'un FTP ile çalışmayı kolaylaştıran bir dizi işlevsellik sağlayan ftplib kütüphanesini kullanacağız. Sunucudan dosya yükleme ve indirme işleminde "ftplib" yapmamıza izin verdiği komutlara değineceğiz.

FTP Nedir?

FTP, Dosya Aktarım Protokolü anlamına gelir. İstemci-sunucu modeli mimarisine dayanır ve yaygın olarak kullanılır. İki kanalı var; bir komut kanalı ve bir veri kanalıdır. Komut kanalı iletişimi kontrol etmek için kullanılır ve veri kanalı dosyaların aktarımı için kullanılır. FTP kullanarak taşıma, indirme, dosya kopyalama gibi bir çok işlem yapılabilir.

Python'da FTP ile Çalışma

Ftplib kütüphanesi python kurulumu ile yerleşik gelen bir kütüphanedir. Ftplib'i projenize dahil ederek çalışmaya başlayabilirsiniz.

from ftplib import FTP  

FTP sunucusuyla bağlantısını başlatabiliriz. Bunu yapmak için bir ftp örneği oluşturun.

#Alanadına kendi ftp sunucu bilgilerinizi giriniz
ftp = FTP('ftp.ertugruldeniz.com')

Yukarıdaki bulunan koddaki yöntemde, sunucuyla bağlantı kurmak için varsayılan bağlantı noktası 21 portunu kullanır.

Sunucuya erişmek için kullanıcı adı ve şifre bilgilerinizi girmeniz gerekmektedir. Aşağıdaki kod bloğunda gerekli yerlere kullanıcı adı ve şifreyi girerek ftp sunucusuna erişim sağlanabilir.

ftp.login('username','password')  

Bağlantı başarılı ise, "230 Başarılı Giriş" e benzer bir mesaj almalısınız. Eğer bir hata alırsanız ftp hata kodlarını inceleyiniz.

Artık sunucuyla bir bağlantı kurduktan sonra, işlem yapmak istediğimiz dizine gitmek istiyoruz, yani bir dosya almak veya yazmak istiyoruz. Bunun için aşağıdaki komutu kullanarak 'mevcut çalışma dizinini' değiştirebiliriz.

#Sunucunuzda erişmek istediğiniz dizinini yazınız.
ftp.cwd('/path/to/the/directory/')  

Şimdi bir dizinden bir dosya almak veya bir dizine bir dosya yazmak için bazı temel kodları inceleyelim.

file_name = 'dosya_adi.txt'  
my_file = open(file_name, 'wb') # İndirilen dosyası saklamak için yerel bir dizin açar  
ftp.retrbinary('RETR ' + file_name, my_file.write, 1024) # İndirilecek dosya adını girin 

Yukarıdaki retrbinary komutunda bulunan 1024 parametresi, dosyanın tamamı aktarılana kadar dosyanın 1024 baytlık bloklar halinde indirileceği anlamına gelir.

Bir dosyayı indirdikten veya yükledikten sonra yapmanız gereken işlem, bu dosyayı kapatmak ve ayrıca açılan FTP bağlantısını kapatmaktır. Kapatma işlemini dosya ve bağlantımızda tutarsızlıklar oluşmaması için yapmalıyız. Bağlantıyı kapatmak için aşağıdaki iki kod satırını kullanabilirsiniz;

ftp.quit() # FTP bağlantısını sonlandırır. 
my_file.close() #İndirilen dosyayı depolamak için açtığımız dosyayı kapatmamıza yarar.

 

Şimdi sunucuya bir dosya yükleyelim. Aşağıdaki komutlara ek olarak, bir FTP bağlantısı açmak için yukarıda kullandığımız komutları tekrar yazmak zorunda kalacaksınız.

file_name = 'dosya_adi.txt'  
ftp.storbinary('STOR ' + file_name, open(file_name, rb)) 

Yukarıdaki örneklerde, 'rb' ve 'wb', sırasıyla "okuma ikili" ve "yazma ikili" anlamına gelmektedir.

Dosyaları ve Dizinleri Listeleme

Geçerli çalışma dizininizdeki dosya ve klasörleri liste biçiminde görmek için retrlines komutunu kullanabliriz.

ftp.retrlines('LIST')  

Yeni bir dizin oluşturma

Dosyalarınızı belirli bir şekilde düzenlemek için, sunucuda tek bir kod satırı kullanarak  yeni bir dizin oluşturma işlemini gerçekleştirebilirsiniz. Yeni dizinin bulunmasını istediğiniz konumu yazınız.

ftp.mkd('/path/for/the/directory')  

Sucudan bir dosya silme

Sunucudaki bir dosyayı silmek oldukça basittir, sadece dosyanın ismini silme işlevine parametre olarak vermeniz gerekir. İşlem başarılı veya başarısız olması sonunda bir cevap mesajı ile iletilecektir.

ftp.delete('silmek_istedigin_dosya_adi')  

Mevcut dizininizi kontrol etmek için aşağıdaki kodu çalıştırmanız yeterlidir.

ftp.pwd()  

Sonuç ;

FTP oldukça güvenli olmasına rağmen, hassas bilgileri aktarmak için kullanılması önerilmez. Eğer hassas bilgiler aktarıyorsanız, SFTP (Secure FTP) veya SSH (Secure Shell) gibi daha güvenli seçenekleri kullanmakta fayda vardır. Bunlar hassas veri aktarımında kullanılan en yaygın kullanılan protokollerdir.

Bu yazıda, FTP'nin ne olduğunu ve python programlama dili ile nasıl kullanıldığı üzerinde çalıştık. Python'un "ftplib" modülünün FTP kullanarak uzak bir sunucu ile iletişim kurmak için nasıl kullanılacağını ve modülün sunduğu bazı işlevleri gördük. FTP'yi Python ile kullanma hakkında daha fazla bilgi için ftlib resmi dökümantasyonunu inceleyebilirsiniz. 

Bu Gönderiyi Paylaş

İçerik Hakkında Yorum Yapın

www.000webhost.com