Kontrolu la finan FTP-respondon antaŭ ol fidi alsuprenaĵon
Respondo 150 signifas, ke la transigo komenciĝis, ne ke la dosiero estas konservita. Apartigu la lokan legadon, la konservan permeson, la datuman konekton kaj la finan respondon.
FTP-kliento povas akcepti komandon put longe antaŭ ol la servilo ricevis la dosieron, kaj ĝuste en la interspaco inter tiuj du okazaĵoj loĝas la plej multaj misteroj de alŝuto. Kvar etapoj devas finiĝi: la loka dosiero estas legata, la servilo akceptas la konservan peton, la datuma konekto portas la bajtojn, kaj la transigo atingas finan pozitivan respondon. Kompari la etapojn estas pli utile ol kompari klientojn, ĉar funkcianta ensaluto kaj aperanta dosiernomo ambaŭ haltas antaŭ la fino.
Antaŭprepara respondo kontraŭ fina respondo
Por STOR, respondo 125 aŭ 150 estas antaŭprepara. Ĝi diras, ke la servilo pretas provi kaj ke datuma konekto malfermiĝas, ne ke la objekto ekzistas en sia fina formo. La operacio kompletiĝas nur kiam la transigo atingas pozitivan kompletigan respondon, kutime 226 aŭ 250, en la kunteksto de tiu operacio.
426 signifas, ke la transigo estis haltigita, kaj nombro presita de alia komando ne estas la rezulto de ĉi tiu alŝuto. Legu la respondon apartenantan al la STOR, ne la lastan nombron sur la ekrano. Se la kliento eliros antaŭ ol tiu respondo alvenos, vi tute ne havas pruvon de kompletigo.
Stira konekto kontraŭ datuma konekto
Aŭtentigo kaj dosieruja listo uzas la stiran konekton. La bajtoj uzas apartan datuman konekton, kaj ĝia finpunkto estas interkonsentita por ĉiu transigo. Sukcesa ensaluto pruvas la stiran vojon kaj diras nenion pri tio, ĉu la datuma adreso estas atingebla de la kliento.
Kiam la servilo ne povas malfermi la datuman konekton, esploru la interkonsentitan finpunkton kaj la permesitan vojon. Pasiva reĝimo ankoraŭ postulas uzeblan datuman adreson kaj pordon, kaj fajroŝirmilo aŭ NAT-aparato inter kliento kaj servilo povas permesi la stiran sesion dum ĝi blokas la datuman intervalon. Kiam la servilo anstataŭe rifuzas la konservan peton, rigardu la malproksiman vojnomon, la permesojn aŭ la konservajn limojn. Neniu el la du branĉoj estas klarigita per tio, ke la stira konekto aŭtentiĝis.
FTP super TLS kontraŭ SFTP
FTP super TLS ankoraŭ estas FTP: du konektoj, FTP-respondoj kaj TLS-plibonigo sur ĉiu. SFTP estas SSH-subsistemo kun unu konekto kaj tute alia komandaro. Ili kunhavas celon kaj preskaŭ nenion alian, do diagnozo, kiu transiras inter ili, kutime komenciĝas per komparo de la malĝustaj protokoloj.
Ne malŝaltu TLS por permesi al pera helpanto inspekti la sesion, kaj ne traktu SFTP-malsukceson kiel FTP-respondan problemon. La manlibro de curl dokumentas eksplicitan TLS, pasivan reĝimon kaj alŝutajn opciojn se vi bezonas skriptan teston, kaj ĝi estas la referenco por tio, kion ĉiu flago efektive ŝanĝas.
Elektu la protokolon, kiun la servo efektive proponas, antaŭ ol sencimigi ĝin. Servilo, kiu parolas nur SFTP, neniam produktos respondon 226, kiel ajn la kliento estas agordita.
Videbla dosiernomo kontraŭ konservita objekto
Videbla dosiernomo povas reprezenti nekompletan objekton, precipe post haltigita transigo aŭ kliento, kiu eliris tro frue. Petu la posedanton de la servo kompari la grandecon de la celata testa dosiero kaj la fidan enhavan haketon kun la konservita objekto, kiam konserviĝo de bajtoj estas atendita.
Binaraj kaj ASCII-reĝimoj estas alia komparo, kiu ŝanĝas la rezulton. ASCII-reĝimo povas traduki linifinojn, do la konservitaj bajtoj diferencas de la loka dosiero eĉ kiam la transigo sukcesis. Tenu binaran reĝimon por kontrolo bajto post bajto, kaj ne aldonu konvertajn opciojn por igi malsukcesan transigon aspekti alie.
Ordinara STOR povas anstataŭigi ekzistantan dosieron, kaj permeso ensaluti aŭ listigi dosierujon ne starigas permeson krei aŭ anstataŭigi objekton en ĝi. Uzu por la testo antaŭe neuzitan malproksiman nomon.
Kion kompari antaŭ ripeto
Ne aldonu, ne daŭrigu kaj ne ripetu alŝuton blinde super necerta parta dosiero. Interkonsentu kun la posedanto, ĉu restartigi sub nova nomo, uzi la subtenatan riparadon de la servo, aŭ forigi la malsukcesan testan objekton.
Skribu la rezulton kiel unu el kvar asertoj: la loka legado malsukcesis, konservado estis rifuzita, la datuma transigo estis haltigita, aŭ la transigo kompletiĝis kaj la konservitaj bajtoj kongruis. Tiu registro estas pli forta rezulto ol ŝanĝi ŝelon, VPN kaj FTP-agordojn kune ĝis dosiernomo aperos, kaj ĝi diras al la sekva persono, kiun etapon inspekti. Konservu la purigitan respondan tekston kun tiu aserto. Tiam ripeto estas decido, ne reflekso.