FTP klientas gali priimti put komandą gerokai anksčiau, nei serveris gavo failą, ir būtent tarp šių dviejų įvykių esančiame tarpelyje gyvena dauguma įkėlimo paslapčių. Turi būti baigti keturi etapai: nuskaitomas vietinis failas, serveris priima saugojimo užklausą, duomenų ryšys perneša baitus ir perdavimas pasiekia galutinį teigiamą atsakymą. Lyginti etapus naudingiau nei lyginti klientus, nes veikiantis prisijungimas ir pasirodantis failo vardas abu sustoja prieš finišą.

Preliminarus atsakymas prieš galutinį

STOR atveju atsakymas 125 arba 150 yra preliminarus. Jis sako, kad serveris pasirengęs pabandyti ir kad atidaromas duomenų ryšys, o ne kad objektas egzistuoja galutine forma. Operacija baigiama tik tada, kai perdavimas pasiekia teigiamą užbaigimo atsakymą, paprastai 226 arba 250, tos operacijos kontekste.

426 reiškia, kad perdavimas nutrauktas, o kitos komandos atspausdintas skaičius nėra šio įkėlimo rezultatas. Skaitykite atsakymą, priklausantį STOR, o ne paskutinį ekrano skaičių. Jei klientas išeina prieš atvykstant tam atsakymui, užbaigimo įrodymų apskritai neturite.

Valdymo ryšys prieš duomenų ryšį

Autentifikavimas ir katalogo sąrašas naudoja valdymo ryšį. Baitai naudoja atskirą duomenų ryšį, o jo galinis taškas derinamas kiekvienam perdavimui. Sėkmingas prisijungimas įrodo valdymo kelią ir nieko nesako apie tai, ar duomenų adresas pasiekiamas iš kliento.

Kai serveris negali atidaryti duomenų ryšio, ištirkite suderintą galinį tašką ir leidžiamą kelią. Pasyvusis režimas vis dar reikalauja naudojamo duomenų adreso ir prievado, o ugniasienė ar NAT įrenginys tarp kliento ir serverio gali leisti valdymo sesiją ir blokuoti duomenų diapazoną. Kai serveris atmeta saugojimo užklausą, žiūrėkite į nuotolinį kelio vardą, leidimus ar saugojimo ribas. Nė viena iš dviejų šakų nepaaiškinama tuo, kad valdymo ryšys buvo autentifikuotas.

FTP per TLS prieš SFTP

FTP per TLS vis dar yra FTP: du ryšiai, FTP atsakymai ir TLS atnaujinimas kiekviename. SFTP yra SSH posistemis su vienu ryšiu ir visai kitu komandų rinkiniu. Jie dalijasi tikslu ir beveik niekuo daugiau, todėl diagnostika, kertanti tarp jų, paprastai prasideda lyginant netinkamus žurnalus.

Neišjunkite TLS, kad tarpininkas galėtų apžiūrėti sesiją, ir nelaikykite SFTP gedimo FTP atsakymų problema. curl vadovas dokumentuoja aiškų TLS, pasyvųjį režimą ir įkėlimo parinktis, jei jums reikia scenarijaus testo, ir tai yra nuoroda, ką kiekviena vėliavėlė iš tikrųjų keičia.

Prieš derindami pasirinkite protokolą, kurį paslauga iš tiesų siūlo. Serveris, kalbantis tik SFTP, niekada nesugeneruos atsakymo 226, kad ir kaip būtų sukonfigūruotas klientas.

Matomas failo vardas prieš saugomą objektą

Matomas failo vardas gali reikšti nepilną objektą, ypač po nutraukto perdavimo ar per anksti išėjusio kliento. Paprašykite paslaugos savininko palyginti numatyto bandomojo failo dydį ir patikimą turinio maišą su saugomu objektu, kai tikimasi baitų išsaugojimo.

Dvejetainis ir ASCII režimai yra dar vienas palyginimas, keičiantis rezultatą. ASCII režimas gali konvertuoti eilučių pabaigas, todėl saugomi baitai skiriasi nuo vietinio failo, nors perdavimas pavyko. Palikite dvejetainį režimą baitų po baito patikrai ir nepridėkite konvertavimo parinkčių, kad nepavykęs perdavimas atrodytų kitaip.

Įprastas STOR gali pakeisti esamą failą, o prisijungimo ar katalogo sąrašo leidimas nesuteikia leidimo jame sukurti ar pakeisti objektą. Bandymui naudokite anksčiau nenaudotą nuotolinį vardą.

Ką palyginti prieš bandant dar kartą

Nepridėkite, netęskite ir nekartokite įkėlimo aklai per neaiškų dalinį failą. Susitarkite su savininku, ar pradėti iš naujo nauju vardu, naudoti paslaugos palaikomą atkūrimo procedūrą, ar pašalinti nepavykusį bandomąjį objektą.

Rezultatą užrašykite kaip vieną iš keturių teiginių: vietinis skaitymas nepavyko, saugojimas buvo atmestas, duomenų perdavimas nutrauktas, arba perdavimas baigtas ir saugomi baitai sutapo. Tas įrašas yra tvirtesnis rezultatas nei keisti apvalkalą, VPN ir FTP nustatymus kartu, kol pasirodys failo vardas, ir jis pasako kitam žmogui, kurį etapą tikrinti. Saugokite išvalytą atsakymo tekstą su tuo teiginiu. Tada pakartotinis bandymas yra sprendimas, o ne refleksas.

Susiję straipsniai