Provjerite konačni FTP odgovor prije nego povjerujete prijenosu
Odgovor 150 znači da je prijenos počeo, a ne da je datoteka pohranjena. Razdvojite lokalno čitanje, dozvolu za pohranu, podatkovnu vezu i konačni odgovor.
FTP klijent može prihvatiti naredbu put mnogo prije nego što server primi datoteku, a jaz između ta dva događaja mjesto je gdje živi većina misterija prijenosa. Moraju se dovršiti četiri faze: lokalna datoteka se čita, server prihvata zahtjev za pohranu, podatkovna veza prenosi bajtove i prijenos dolazi do konačnog pozitivnog odgovora. Upoređivanje faza korisnije je od upoređivanja klijenata, jer prijava koja radi i naziv datoteke koji se pojavi oboje staju prije cilja.
Preliminarni odgovor nasuprot konačnom
Za STOR je odgovor 125 ili 150 preliminaran. On kazuje da je server spreman pokušati i da se podatkovna veza otvara, a ne da objekt postoji u konačnom obliku. Operacija je dovršena tek kada prijenos dođe do pozitivnog odgovora o završetku, obično 226 ili 250, u kontekstu te operacije.
426 znači da je prijenos prekinut, a broj koji ispiše druga naredba nije rezultat ovog prijenosa. Čitajte odgovor koji pripada STOR-u, a ne posljednji broj na ekranu. Ako klijent izađe prije nego taj odgovor stigne, nemate nikakav dokaz o završetku.
Kontrolna veza nasuprot podatkovnoj vezi
Autentifikacija i popis direktorija koriste kontrolnu vezu. Bajtovi koriste odvojenu podatkovnu vezu, a njezina se krajnja točka dogovara za svaki prijenos. Uspješna prijava dokazuje kontrolnu putanju i ne kazuje ništa o tome je li podatkovna adresa dostupna s klijenta.
Kada server ne može otvoriti podatkovnu vezu, ispitajte dogovorenu krajnju točku i dopuštenu putanju. Pasivni način rada i dalje zahtijeva upotrebljivu podatkovnu adresu i port, a vatrozid ili NAT uređaj između klijenta i servera može dopustiti kontrolnu sesiju dok blokira raspon podataka. Kada server umjesto toga odbije zahtjev za pohranu, pogledajte udaljeni naziv putanje, dozvole ili ograničenja pohrane. Nijedna grana nije objašnjena time što se kontrolna veza autentificirala.
FTP preko TLS-a nasuprot SFTP-u
FTP preko TLS-a i dalje je FTP: dvije veze, FTP odgovori i TLS nadogradnja na svakoj. SFTP je podsustav SSH-a s jednom vezom i posve drugačijim skupom naredbi. Dijele svrhu i gotovo ništa drugo, pa dijagnoza koja prelazi između njih obično počinje poređenjem pogrešnih zapisa.
Ne isključujte TLS da biste posrednom pomoćniku omogućili pregled sesije i ne tretirajte neuspjeh SFTP-a kao problem s FTP odgovorima. curl priručnik dokumentira eksplicitni TLS, pasivni način rada i opcije prijenosa ako vam treba skriptirani test, i referenca je za ono što svaki flag zapravo mijenja.
Odaberite protokol koji usluga doista nudi prije nego što je počnete otklanjati. Server koji govori samo SFTP nikada neće dati odgovor 226, kako god klijent bio konfiguriran.
Vidljiv naziv datoteke nasuprot pohranjenom objektu
Vidljiv naziv datoteke može predstavljati nepotpun objekt, osobito nakon prekinutog prijenosa ili klijenta koji je izašao prerano. Zamolite vlasnika usluge da uporedi veličinu predviđene testne datoteke i pouzdani hash sadržaja s pohranjenim objektom kada se očekuje očuvanje bajtova.
Binarni i ASCII način još su jedna usporedba koja mijenja rezultat. ASCII način može prevesti završetke redaka, pa se pohranjeni bajtovi razlikuju od lokalne datoteke iako je prijenos uspio. Zadržite binarni način za provjeru bajt po bajt i ne dodajte opcije pretvorbe da bi neuspjeli prijenos izgledao drukčije.
Obični STOR može zamijeniti postojeću datoteku, a dozvola za prijavu ili popis direktorija ne uspostavlja dozvolu za stvaranje ili zamjenu objekta u njemu. Za test koristite prethodno nekorišteni udaljeni naziv.
Što uporediti prije ponovnog pokušaja
Ne dodavajte, ne nastavljajte i ne ponavljajte prijenos naslijepo preko nesigurne djelomične datoteke. Dogovorite s vlasnikom hoćete li ponovno početi pod novim nazivom, upotrijebiti podržani postupak oporavka usluge ili ukloniti neuspjeli testni objekt.
Zapišite ishod kao jednu od četiri tvrdnje: lokalno čitanje nije uspjelo, pohrana je odbijena, prijenos podataka je prekinut ili je prijenos dovršen i pohranjeni bajtovi se podudaraju. Taj zapis jači je rezultat od mijenjanja ljuske, VPN-a i FTP postavki zajedno dok se ne pojavi naziv datoteke, i kazuje sljedećoj osobi koju fazu pregledati. Čuvajte očišćeni tekst odgovora uz tu tvrdnju. Tada je ponovni pokušaj odluka, a ne refleks.