Preverite končni odgovor FTP, preden zaupate nalaganju
Odgovor 150 pomeni, da se je prenos začel, ne da je datoteka shranjena. Ločite lokalno branje, dovoljenje za shranjevanje, podatkovno povezavo in končni odgovor.
Odjemalec FTP lahko sprejme ukaz put veliko prej, preden strežnik prejme datoteko, in prav v vrzeli med tema dvema dogodkoma živi večina skrivnosti nalaganja. Dokončati se morajo štiri stopnje: lokalna datoteka se prebere, strežnik sprejme zahtevo za shranjevanje, podatkovna povezava prenese bajte in prenos doseže končni pozitivni odgovor. Primerjanje stopenj je koristnejše od primerjanja odjemalcev, ker se uspešna prijava in vidno ime datoteke oba ustavita pred ciljem.
Predhodni in končni odgovor
Za STOR je odgovor 125 ali 150 predhoden. Pove, da je strežnik pripravljen poskusiti in da se odpira podatkovna povezava, ne pa da objekt obstaja v končni obliki. Operacija je dokončana šele, ko prenos doseže pozitivni odgovor o dokončanju, običajno 226 ali 250, v kontekstu te operacije.
426 pomeni, da je bil prenos prekinjen, in številka, ki jo natisne drug ukaz, ni rezultat tega nalaganja. Berite odgovor, ki pripada temu STOR, ne zadnje številke na zaslonu. Če se odjemalec konča, preden ta odgovor prispe, nimate nobenega dokaza o dokončanju.
Krmilna povezava in podatkovna povezava
Preverjanje pristnosti in seznam mape uporabljata krmilno povezavo. Bajti uporabljajo ločeno podatkovno povezavo, njena končna točka pa se dogovori za vsak prenos. Uspešna prijava dokaže krmilno pot in ne pove ničesar o tem, ali je podatkovni naslov dosegljiv z odjemalca.
Ko strežnik ne more odpreti podatkovne povezave, raziščite dogovorjeno končno točko in dovoljeno pot. Pasivni način še vedno zahteva uporaben podatkovni naslov in vrata, požarni zid ali naprava NAT med odjemalcem in strežnikom pa lahko spusti krmilno sejo in blokira podatkovno območje. Ko strežnik namesto tega zavrne zahtevo za shranjevanje, poglejte oddaljeno ime poti, dovoljenja ali omejitve shranjevanja. Nobene od vej ne pojasni to, da je bila krmilna povezava preverjena.
FTP prek TLS in SFTP
FTP prek TLS je še vedno FTP: dve povezavi, odgovori FTP in nadgradnja TLS na vsaki. SFTP je podsistem SSH z eno povezavo in povsem drugačnim naborom ukazov. Delita namen in skoraj nič drugega, zato se diagnoza, ki prehaja med njima, običajno začne s primerjanjem napačnih dnevnikov.
Ne izklopite TLS, da bi vmesni pomočnik lahko pregledal sejo, in ne obravnavajte okvare SFTP kot težave z odgovorom FTP. priročnik curl opisuje izrecni TLS, pasivni način in možnosti nalaganja, če potrebujete test iz skripta, in je referenca za to, kaj vsaka zastavica dejansko spremeni.
Izberite protokol, ki ga storitev dejansko ponuja, preden jo odpravljate. Strežnik, ki govori samo SFTP, nikoli ne bo ustvaril odgovora 226, ne glede na to, kako je odjemalec nastavljen.
Vidno ime datoteke in shranjeni objekt
Vidno ime datoteke lahko predstavlja nepopoln objekt, zlasti po prekinjenem prenosu ali odjemalcu, ki se je končal zgodaj. Prosite lastnika storitve, naj primerja velikost predvidene preskusne datoteke in zaupanja vreden hash vsebine s shranjenim objektom, ko pričakujete ohranitev bajtov.
Binarni in ASCII način sta še ena primerjava, ki spremeni izid. Način ASCII lahko pretvori konce vrstic, zato se shranjeni bajti razlikujejo od lokalne datoteke, tudi če je prenos uspel. Za preverjanje bajt za bajtom obdržite binarni način in ne dodajajte možnosti pretvorbe, da bi neuspešen prenos izgledal drugače.
Običajen STOR lahko zamenja obstoječo datoteko, dovoljenje za prijavo ali seznam mape pa ne vzpostavi dovoljenja za ustvarjanje ali zamenjavo objekta v njej. Za preskus uporabite prej neuporabljeno oddaljeno ime.
Kaj primerjati pred ponovnim poskusom
Ne dodajajte, ne nadaljujte in ne ponavljajte nalaganja na slepo čez negotovo delno datoteko. Z lastnikom se dogovorite, ali začeti znova pod novim imenom, uporabiti postopek obnovitve, ki ga storitev podpira, ali odstraniti neuspešni preskusni objekt.
Izid zapišite kot eno od štirih trditev: lokalno branje ni uspelo, shranjevanje je bilo zavrnjeno, podatkovni prenos je bil prekinjen ali prenos se je dokončal in shranjeni bajti so se ujemali. Ta zapis je močnejši izid od hkratnega spreminjanja lupine, VPN in nastavitev FTP, dokler se ne pojavi ime datoteke, in naslednji osebi pove, katero stopnjo pregledati. Ob trditvi shranite očiščeno besedilo odgovora. Takrat je ponovni poskus odločitev, ne refleks.