FTP List Konnektör
Kullanım
FTP List konnektörü, FTP sunucusundaki dosya ve dizinleri listelemek için kullanılır. Oluşturulan konnektör bir API Proxy olarak çalışır ve HTTP GET veya POST isteği ile tetiklenebilir. POST isteği kullanıldığında, gelişmiş filtreleme kriterleri ile dosyaları arayabilir ve filtreleyebilirsiniz.
Temel Kullanım (GET İsteği)
Basit bir GET isteği ile dizindeki tüm dosyaları alabilirsiniz:
curl --location --request GET "https://<APINIZER_ACCESS_URL>/<RELATIVE_PATH>"
Gelişmiş Kullanım (POST İsteği)
POST isteği ile istek gövdesi göndererek filtreleme kriterleri uygulayabilirsiniz:
curl --location --request POST "https://<APINIZER_ACCESS_URL>/<RELATIVE_PATH>" \
-H "Content-Type: application/json" \
--data-raw '{"searchType": "WILDCARD", "searchPattern": "*.json", "caseInsensitive": true}'
İstek gövdesi boş gönderildiğinde veya GET isteği yapıldığında, dizindeki tüm dosyalar varsayılan değerler ile listelenir.
İstek Gövdesi Parametreleri
Dosya Arama Ayarları
Tip: string
Varsayılan Değer: STARTS_WITH
Açıklama: Dosya adlarının nasıl aranacağını belirtir. Kullanılabilir seçenekler:
- STARTS_WITH: Dosya adının verilen desenle başlayıp başlamadığını kontrol eder
- EXACT_MATCH: Verilen dosya adı ile tam eşleşme kontrolü yapar
- CONTAINS: Dosya adının içinde verilen deseni içerip içermediğini kontrol eder
- ENDS_WITH: Dosya adının verilen desenle bitip bitmediğini kontrol eder
- WILDCARD: Joker karakter eşleştirmesi kullanır (* herhangi bir dizi ile eşleşir, ? tek karakter ile eşleşir)
Tip: string
Varsayılan Değer: (boş - tüm dosyaları listeler)
Açıklama: Aranacak dosya adı veya deseni. Kullanım searchType'a göre değişir:
- WILDCARD için:
*.json,dosya?.txt,rapor_*.pdf - ENDS_WITH için:
.json,.pdf - STARTS_WITH için:
fatura_,rapor - CONTAINS için:
2025,veri - EXACT_MATCH için:
rapor.pdf,veri.json
Tip: boolean
Varsayılan Değer: true
Açıklama: Dosya adı aramasının büyük/küçük harf duyarlı olup olmayacağını belirler. true olduğunda "Dosya.txt" ve "dosya.txt" aynı kabul edilir.
Tip: string
Varsayılan Değer: ALL_MATCHES
Açıklama: Döndürülecek sonuç miktarını belirtir:
- FIRST_MATCH: Sadece ilk eşleşen dosyayı döndürür ve aramayı durdurur
- ALL_MATCHES: Tüm eşleşen dosyaları döndürür
Dosya Boyutu Sınırlaması
Tip: integer
Varsayılan Değer: (sınır yok)
Açıklama: Maksimum dosya boyutu kilobayt (KB) cinsinden. Bu boyuttan büyük dosyalar sonuçlardan hariç tutulur. Örneğin 10240 değeri sadece 10 MB'a kadar olan dosyaların dahil edileceği anlamına gelir.
Not: Bu parametre sadece listeleme sonuçlarındaki dosya boyutu filtrelemesini etkiler. Dosya okuma işlemini sınırlamaz.
Yanıt Formatı
Yanıt, istekteki Accept başlığına göre JSON veya XML formatında döndürülür.
Başarılı Yanıt (Dosyalar Bulundu)
{
"files": [
"fatura_2025_001.pdf",
"fatura_2025_002.pdf",
"rapor.json"
],
"count": 3,
"searchType": "starts_with",
"caseInsensitive": true,
"returnType": "all_matches"
}
Boş Yanıt (Dosya Bulunamadı)
{
"files": [],
"count": 0,
"message": "No files matching pattern '*.xml'",
"searchType": "wildcard",
"caseInsensitive": true,
"returnType": "all_matches"
}
Dosya bulunamadığında, message alanı neden sonuç döndürülmediği hakkında bilgi verir.
Örnek Senaryolar
Örnek 1: Tüm JSON Dosyalarını Listeleme
Kullanım Senaryosu: Dizindeki .json uzantılı tüm dosyaları bulma
{
"searchType": "WILDCARD",
"searchPattern": "*.json",
"caseInsensitive": true
}
Yanıt:
{
"files": ["veri.json", "ayar.json", "rapor.json"],
"count": 3,
"message": null
}
Örnek 2: "fatura" ile Başlayan Dosyaları Bulma
Kullanım Senaryosu: "fatura" öneki ile başlayan tüm dosyaları listeleme
{
"searchType": "STARTS_WITH",
"searchPattern": "fatura",
"caseInsensitive": false,
"returnType": "ALL_MATCHES"
}
Örnek 3: İlk PDF Dosyasını Bulma
Kullanım Senaryosu: Sadece ilk PDF dosyasını al ve aramayı durdur
{
"searchType": "ENDS_WITH",
"searchPattern": ".pdf",
"returnType": "FIRST_MATCH"
}
Yanıt:
{
"files": ["rapor.pdf"],
"count": 1
}
Örnek 4: Tam Dosya Adı Eşleşmesi
Kullanım Senaryosu: Belirli bir dosyanın var olup olmadığını kontrol etme
{
"searchType": "EXACT_MATCH",
"searchPattern": "ayar.json"
}
Örnek 5: Çoklu Desen ile Joker Karakter Kullanımı
Kullanım Senaryosu: Karmaşık desenlere uyan dosyaları bulma
{
"searchType": "WILDCARD",
"searchPattern": "rapor_2025_??.pdf"
}
Bu desen şu dosyalarla eşleşir: rapor_2025_01.pdf, rapor_2025_12.pdf ancak rapor_2025_123.pdf ile eşleşmez
Örnek 6: İçinde Belirli Metin Geçen Dosyalar
Kullanım Senaryosu: Adında "yedek" geçen tüm dosyaları bulma
{
"searchType": "CONTAINS",
"searchPattern": "yedek",
"caseInsensitive": true,
"maxFileSizeKB": 50000
}
Bu desen şu dosyalarla eşleşir: gunluk_yedek.zip, yedek_2025.tar.gz, vt_yedek_tam.sql
Örnek 7: Büyük/Küçük Harfe Duyarlı Arama
Kullanım Senaryosu: Tam harf eşleşmesi ile dosya bulma
{
"searchType": "STARTS_WITH",
"searchPattern": "Rapor",
"caseInsensitive": false
}
Bu desen:
- ✅
Rapor_2025.pdfile eşleşir - ❌
rapor_2025.pdfile eşleşmez (küçük harf 'r') - ❌
RAPOR_2025.pdfile eşleşmez (tümü büyük harf)
Yanıt İçerik Tipi
Konnektör, Accept başlığına göre yanıt döndürür:
- application/json (varsayılan): JSON formatında yanıt döndürür
- application/xml: XML formatında yanıt döndürür
XML ile örnek istek:
curl --location --request POST "https://<APINIZER_ACCESS_URL>/<RELATIVE_PATH>" \
-H "Accept: application/xml" \
-H "Content-Type: application/json" \
--data-raw '{"searchPattern": "*.json"}'
En İyi Uygulamalar
Çok büyük dosyaların indirilmesini önlemek için makul bir maxFileSizeKB sınırı belirleyin.
Sadece bir dosyaya ihtiyacınız varsa, performansı artırmak için returnType: "FIRST_MATCH" kullanın. İlk eşleşmeden sonra arama durur.
*sıfır veya daha fazla karakter ile eşleşir?tam olarak bir karakter ile eşleşir- Karmaşık desenler için birleştirin:
dosya_*.???şu dosyalarla eşleşirdosya_veri.txt,dosya_test.pdf
Türkçe karakterler için caseInsensitive: true kullanmanız önerilir. Bu sayede "Dosya.txt", "dosya.txt" ve "DOSYA.txt" aynı kabul edilir.