Skontrolujte konečnú odpoveď FTP, kým uveríte nahratiu
Odpoveď 150 znamená, že prenos sa začal, nie že súbor je uložený. Oddeľte lokálne čítanie, povolenie na uloženie, dátové spojenie a konečnú odpoveď.
Klient FTP môže prijať príkaz put dávno predtým, než server súbor prijal, a práve v medzere medzi týmito dvoma udalosťami žije väčšina záhad nahrávania. Musia sa dokončiť štyri etapy: lokálny súbor sa prečíta, server prijme požiadavku na uloženie, dátové spojenie prenesie bajty a prenos dosiahne konečnú kladnú odpoveď. Porovnávanie etáp je užitočnejšie než porovnávanie klientov, pretože úspešné prihlásenie aj zobrazený názov súboru sa obe zastavia pred cieľom.
Predbežná odpoveď a konečná odpoveď
Pre STOR je odpoveď 125 alebo 150 predbežná. Hovorí, že server je ochotný to skúsiť a že sa otvára dátové spojenie, nie že objekt existuje v konečnej podobe. Operácia je dokončená až vtedy, keď prenos dosiahne kladnú odpoveď o dokončení, zvyčajne 226 alebo 250, v kontexte tejto operácie.
426 znamená, že prenos bol prerušený, a číslo vytlačené iným príkazom nie je výsledkom tohto nahrávania. Čítajte odpoveď, ktorá patrí tomuto STOR, nie posledné číslo na obrazovke. Ak sa klient ukončí skôr, než tá odpoveď príde, nemáte žiadny dôkaz o dokončení.
Riadiace spojenie a dátové spojenie
Overenie identity a výpis adresára používajú riadiace spojenie. Bajty používajú samostatné dátové spojenie a jeho koncový bod sa dohaduje pri každom prenose. Úspešné prihlásenie dokazuje riadiacu cestu a nehovorí nič o tom, či je dátová adresa dostupná z klienta.
Keď server nedokáže otvoriť dátové spojenie, preskúmajte dohodnutý koncový bod a povolenú cestu. Pasívny režim stále vyžaduje použiteľnú dátovú adresu a port a firewall alebo zariadenie NAT medzi klientom a serverom môže prepustiť riadiacu reláciu a zablokovať dátový rozsah. Keď server namiesto toho požiadavku na uloženie odmietne, pozrite sa na vzdialený názov cesty, povolenia alebo limity úložiska. Ani jednu z vetiev nevysvetľuje to, že riadiace spojenie bolo overené.
FTP cez TLS a SFTP
FTP cez TLS je stále FTP: dve spojenia, odpovede FTP a aktualizácia TLS na každom z nich. SFTP je podsystém SSH s jediným spojením a úplne inou sadou príkazov. Zdieľajú účel a takmer nič iné, preto diagnostika prechádzajúca medzi nimi zvyčajne začína porovnaním nesprávnych záznamov.
Nevypínajte TLS, aby medziľahlý pomocník mohol skontrolovať reláciu, a neberte zlyhanie SFTP ako problém odpovede FTP. príručka curl dokumentuje explicitné TLS, pasívny režim a možnosti nahrávania, ak potrebujete test zo skriptu, a je referenciou pre to, čo každý prepínač skutočne mení.
Pred ladením si vyberte protokol, ktorý služba skutočne ponúka. Server, ktorý hovorí iba SFTP, nikdy nevytvorí odpoveď 226, nech je klient nakonfigurovaný akokoľvek.
Viditeľný názov súboru a uložený objekt
Viditeľný názov súboru môže predstavovať neúplný objekt, najmä po prerušenom prenose alebo po klientovi, ktorý sa ukončil skoro. Požiadajte vlastníka služby, aby porovnal veľkosť zamýšľaného testovacieho súboru a dôveryhodný hash obsahu s uloženým objektom, keď sa očakáva zachovanie bajtov.
Binárny a ASCII režim sú ďalšie porovnanie, ktoré mení výsledok. ASCII režim môže prekladať konce riadkov, takže uložené bajty sa líšia od lokálneho súboru, aj keď prenos prebehol úspešne. Pri kontrole bajt po bajt zachovajte binárny režim a nepridávajte možnosti konverzie, aby neúspešný prenos vyzeral inak.
Bežný STOR môže nahradiť existujúci súbor a povolenie prihlásiť sa alebo vypísať adresár nezakladá povolenie vytvoriť alebo nahradiť v ňom objekt. Na test použite skôr nepoužitý vzdialený názov.
Čo porovnať pred novým pokusom
Nepridávajte, neobnovujte ani neopakujte nahrávanie naslepo na neistý čiastočný súbor. Dohodnite sa s vlastníkom, či začať znova pod novým názvom, použiť postup obnovy podporovaný službou alebo odstrániť zlyhaný testovací objekt.
Výsledok zapíšte ako jedno zo štyroch tvrdení: lokálne čítanie zlyhalo, uloženie bolo odmietnuté, dátový prenos bol prerušený alebo prenos sa dokončil a uložené bajty sa zhodovali. Taký záznam je silnejší výsledok než súčasná zmena shellu, VPN a nastavení FTP, kým sa neobjaví názov súboru, a povie ďalšiemu človeku, ktorú etapu preskúmať. Uchovajte očistený text odpovede spolu s týmto tvrdením. Potom je nový pokus rozhodnutie, nie reflex.