Ana içeriğe atla
FTP List Konnektör Konfigürasyonu

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

searchType

Tip: stringVarsayılan Değer: STARTS_WITHAçı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)

searchPattern

Tip: stringVarsayı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

caseInsensitive

Tip: booleanVarsayılan Değer: trueAçı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.

returnType

Tip: stringVarsayılan Değer: ALL_MATCHESAçı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

maxFileSizeKB

Tip: integerVarsayı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.pdf ile eşleşir
  • rapor_2025.pdf ile eşleşmez (küçük harf ‘r’)
  • RAPOR_2025.pdf ile 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

maxFileSizeKB Kullanın

Çok büyük dosyaların indirilmesini önlemek için makul bir maxFileSizeKB sınırı belirleyin.

FIRST_MATCH Kullanın

Sadece bir dosyaya ihtiyacınız varsa, performansı artırmak için returnType: "FIRST_MATCH" kullanın. İlk eşleşmeden sonra arama durur.

Joker Karakterler

  • * 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şir dosya_veri.txt, dosya_test.pdf

Case Sensitivity

Türkçe karakterler için caseInsensitive: true kullanmanız önerilir. Bu sayede “Dosya.txt”, “dosya.txt” ve “DOSYA.txt” aynı kabul edilir.