FTP yani File Transfer Protocol, dijital dünyada birbirine doğrudan bağlı olmayan iki bilgisayar arasında dosya transferi yapmak için kullanılan yöntemler ailesidir.
Yani bir sunucuya dosya yüklemek, yada sunucudan dosya indirmek, istediğimiz bir klasörü oluşturmak gibi işlemleri FTP protokolü sayesinde yapabiliyoruz. FTP işlemleri için günlük hayatta kullanımı çok basit olan programlar mevcut. Mesela ben FileZilla programını, sunucuma dosya aktarırken ya da dosyaları kendi bilgisayarıma indirirken sıkça kullanıyorum.
Bu işi bizim günlük hayattta nasıl yaptığımızdan bahsettik. Biraz da robot nasıl yapar kısmına odaklanabiliriz. Robot üzerinde koşan otomasyonlarda; arka planda çalışan yazılımsal öğeler, kullanıcı arayüzü(GUI) üzerinde koşan aktivitelerden her zaman çok daha basit ve çok daha doğru çalışmaktadır. Dolayısıyla arka planda yapılan bir FTP işlemi de örneğin FileZilla arayüzü üzerinde koşacak bir otomasyondan hem daha hızlı geliştirilecek, hem de daha performanslı çalışacaktır.
Arka planda koşan FTP işlemlerini UiPath ile geliştirdiğimiz otomasyonlara dahil edebilmek için yine UiPath tarafından hazırlanmış UiPath.FTP.Activities kütüphanesini projemize dahil etmemiz gerekiyor.
Yukarıda bahsettiğim kütüphaneyi kurduktan sonra aşağıdaki şekilde olduğu gibi App Integration sekmesi altına FTP klasörü eklenecek ve ihtiyacımızı giderecek olan aktiviteler projemize eklenecektir.
Şimdi bu aktiviteleri en çok kullanılandan en az kullanılana doğru tanılayım ve nasıl kullanacağımızı görelim.
1. With Ftp Session
With Ftp Session aktivitesi, FTP bağlantısının kurulduğu bir konteyner aktivitesidir. FTP ile ilgili bütün işlemler bu Sequence tipindeki bu konteynerın içerisinde gerçekleşmektedir. Aktivitenin bittiği yerde FTP bağlantısı da otomatik olarak kapatılır.
Aktivitenin parametrelerinde Host alanına ftp yapacağımız sunucunun URL bilgisi ya da IP adresi girilir. Port alanına FTP protokolüyle bağlantı kurmak için 21 SFTP protokolüyle bağlantı kurmak için 22 girilir.
Not: Buradaki port numaraları varsayılan değerlerdir, her sunucunun port değerleri aynı olmayabilir.
Eğer sunucuya anonim girişe izin veriliyorsa Credentials kısmındaki Use anonymous login seçeneği seçili hale getirilir. Anonim izni yoksa ise Username ve Password alanlarına oturum bilgileri girilir.
Security kısmıysa sunucuya bağlanmak için bir sertifika gerekliyse, bu sertifika bilgileri ile doldurulur. Aynı zamanda FTP’nin şifrelenmiş hali olan SFTP protokolünü kullanmak için bu kısımda bulunan Use SFTP seçeneği seçili hale getirilir.
2. Upload Files
FTP protokolü vasıtasıyla, uzak sunucuya ya da farklı bir bilgisayara dosya veya dosyalar yüklemek için kullanılan aktivitedir.
Input parametresi olan Local path alanına karşı sisteme yüklemek istediğimiz dosya ya da klasörün adı girilir. Remote path alanına, yüklenecek olan dosyaların karşı sunucu bilgisayarının dosya sisteminde yer alacağı klasör yolunu yazılır. Yükleyeceğimiz öğelerlerde yer alan klasörlerin karşı sistemde yeni klasör olarak oluşturulmasını istiyorsak, Create alanını işaretli hale getirmeliyiz. Karşı sisteme yükleyeceğimiz klasörü içerisinde yer alan öğelerle birlikte kopyalamak istiyorsak Include subfolders seçeneğini işaretlemeliyiz. Son olarak karşı sisteme upload edeceğimiz dosyayla aynı isimde bir dosya zaten karşı sistemde mevcutsa, yeni yüklediğimiz dosyanın eski dosyanın üzerine yazmasını istiyorsak, Overwrite seçeneğini işaretlemeliyiz.
3. Download Files
Karşı bilgisayar ya ad sunucudan dosya veya dosyaları kendi bilgisayarımıza(otomasyonun çalıştığı makineye) indirmeyi sağlayan aktivitedir.
Input parametresi olan Remote path alanına indirmek istediğimiz dosya ya da klasörün adı girilir. Local path alanına, indirilecek olan dosyaların lokal bilgisayarımızın dosya sisteminde yer alacağı klasör yolunu yazılır. İndireceğimiz öğelerlerde yer alan klasörlerin kendi bilgisayarımızda yeni klasör olarak oluşturulmasını istiyorsak, Create alanını seçili hale getirmeliyiz. Karşı sistemdeki klasörlerin içerilerinde yer alan öğelerle birlikte kopyalamak istiyorsak Include subfolders seçeneğini işaretlemeliyiz. Son olarak karşı sistemden indireceğimiz dosyayla aynı isimde bir dosya bizim sistemimizde hali hazırda varsa, yeni indirdiğimiz dosyanın eski dosyanın üzerine yazmasını istiyorsak, Overwrite seçeneğini işaretlemeliyiz.
4. Enumerate Objects
FTP ile bağlantı kurduğumuz karşı bilgisayarın dosya sisteminde yer alan klasörler ve dosyalar hakkında bilgi almak için kullanılan aktivitedir.
Input parametresi olarak Remote path alanına karşı bilgisayarın dosya sisteminden bir klasör ismi girilir. Output parametresi olarak girdiğimiz klasörde yer alan dosyalarla ilgili bilgileri içeren FtpObjectInfo nesne listesi döner.
5. File Exists
Karşı bilgisayarın sisteminde belirli bir klasörde, aradığımız bir dosyanın var olup olmadığını kontrol eden aktivitedir. Output parametresi olarak bize Boolean tipinde True ya da False olarak bir değer döner.
6. Directory Exists
Karşı bilgisayarın sisteminde aradığımız bir klasörün var olup olmadığını kontrol eden aktivitedir. Output parametresi olarak bize Boolean tipinde True ya da False olarak bir değer döner.
7. Delete
FTP protokolüyle bağlı bulunduğumuz karşı bilgisayar sisteminden bir dosyayı ya da klasörü silmek için kullanılan aktivitedir.
Remote path parametresine, silinmek istenen klasör ya da dosyanın yolu yazılır.
8. Bonus: Move File
Normal şartlar altında, FTP protokolüyle bağlantı kurduğumuz bilgisayarda herhangi bir dosyayı farklı bir noktaya direkt olarak taşımamız mümkün değildir. Bonus maddemizde, direkt olarak yapamadığımız bu işlemi dolaylı yolla nasıl yaparız onu göstereceğim.
Bir dosyayı FTP aktiviteleriyle dolaylı olarak taşımak için önce Download Files aktivitesiyle kendi bilgisayarımıza indirmeli, sonra o dosyayı Delete ile karşı bilgisayarın dosya sisteminden silmeli, son olarak karşı bilgisayarın sisteminde nereye taşımak istiyorsak, o klasör yoluna Upload Files aktivitesi yardımıyla yüklemeliyiz.
Sorularınız, yorum ve önerileriniz için yorum yazabilir, ya da contact@erkanceylan.com mail adresinden bana ulaşabilirsiniz.
Başka bir blog yazısında tekrar görüşmek dileğiyle, esen kalın.