Ένας πελάτης FTP μπορεί να δεχτεί μια εντολή put πολύ πριν ο διακομιστής λάβει το αρχείο, και το κενό ανάμεσα σε αυτά τα δύο γεγονότα είναι εκεί όπου κατοικούν τα περισσότερα μυστήρια της μεταφόρτωσης. Πρέπει να ολοκληρωθούν τέσσερα στάδια: διαβάζεται το τοπικό αρχείο, ο διακομιστής δέχεται το αίτημα αποθήκευσης, η σύνδεση δεδομένων μεταφέρει τα byte και η μεταφορά φτάνει σε μια τελική θετική απάντηση. Η σύγκριση των σταδίων είναι πιο χρήσιμη από τη σύγκριση πελατών, γιατί μια σύνδεση που λειτουργεί και ένα όνομα αρχείου που εμφανίζεται σταματούν και τα δύο πριν από τον τερματισμό.

Προκαταρκτική απάντηση έναντι τελικής απάντησης

Για το STOR, μια απάντηση 125 ή 150 είναι προκαταρκτική. Λέει ότι ο διακομιστής είναι πρόθυμος να δοκιμάσει και ότι ανοίγει μια σύνδεση δεδομένων, όχι ότι το αντικείμενο υπάρχει στην τελική του μορφή. Η πράξη ολοκληρώνεται μόνο όταν η μεταφορά φτάσει σε θετική απάντηση ολοκλήρωσης, συνήθως 226 ή 250, στο πλαίσιο αυτής της πράξης.

Μια 426 σημαίνει ότι η μεταφορά ακυρώθηκε, και ένας αριθμός που τυπώνει άλλη εντολή δεν είναι το αποτέλεσμα αυτής της μεταφόρτωσης. Διαβάστε την απάντηση που ανήκει στο STOR, όχι τον τελευταίο αριθμό στην οθόνη. Αν ο πελάτης τερματιστεί πριν φτάσει αυτή η απάντηση, δεν έχετε καθόλου απόδειξη ολοκλήρωσης.

Σύνδεση ελέγχου έναντι σύνδεσης δεδομένων

Ο έλεγχος ταυτότητας και η λίστα καταλόγου χρησιμοποιούν τη σύνδεση ελέγχου. Τα byte χρησιμοποιούν ξεχωριστή σύνδεση δεδομένων και το τελικό της σημείο διαπραγματεύεται για κάθε μεταφορά. Μια επιτυχής σύνδεση αποδεικνύει τη διαδρομή ελέγχου και δεν λέει τίποτα για το αν η διεύθυνση δεδομένων είναι προσβάσιμη από τον πελάτη.

Όταν ο διακομιστής δεν μπορεί να ανοίξει τη σύνδεση δεδομένων, ερευνήστε το διαπραγματευμένο τελικό σημείο και την επιτρεπόμενη διαδρομή. Η παθητική λειτουργία εξακολουθεί να απαιτεί χρησιμοποιήσιμη διεύθυνση δεδομένων και θύρα, και ένα τείχος προστασίας ή συσκευή NAT ανάμεσα στον πελάτη και τον διακομιστή μπορεί να επιτρέπει τη συνεδρία ελέγχου ενώ αποκλείει το εύρος δεδομένων. Όταν ο διακομιστής απορρίπτει το αίτημα αποθήκευσης, κοιτάξτε το απομακρυσμένο όνομα διαδρομής, τα δικαιώματα ή τα όρια αποθήκευσης. Καμία από τις δύο διακλαδώσεις δεν εξηγείται από το ότι η σύνδεση ελέγχου πιστοποιήθηκε.

FTP μέσω TLS έναντι SFTP

Το FTP μέσω TLS είναι ακόμη FTP: δύο συνδέσεις, απαντήσεις FTP και αναβάθμιση TLS σε καθεμία. Το SFTP είναι υποσύστημα του SSH με μία σύνδεση και εντελώς διαφορετικό σύνολο εντολών. Μοιράζονται έναν σκοπό και σχεδόν τίποτα άλλο, γι' αυτό μια διάγνωση που περνά από το ένα στο άλλο αρχίζει συνήθως συγκρίνοντας τα λάθος αρχεία καταγραφής.

Μην απενεργοποιήσετε το TLS για να επιθεωρήσει ένας ενδιάμεσος βοηθός τη συνεδρία, και μην αντιμετωπίζετε μια αποτυχία SFTP ως πρόβλημα απαντήσεων FTP. Το εγχειρίδιο του curl τεκμηριώνει το ρητό TLS, την παθητική λειτουργία και τις επιλογές μεταφόρτωσης αν χρειάζεστε δοκιμή με σενάριο, και είναι η αναφορά για το τι αλλάζει πραγματικά κάθε σημαία.

Επιλέξτε το πρωτόκολλο που προσφέρει πραγματικά η υπηρεσία πριν το αποσφαλματώσετε. Ένας διακομιστής που μιλά μόνο SFTP δεν θα παράγει ποτέ απάντηση 226, ό,τι κι αν ρυθμιστεί στον πελάτη.

Ένα ορατό όνομα αρχείου έναντι ενός αποθηκευμένου αντικειμένου

Ένα ορατό όνομα αρχείου μπορεί να αντιπροσωπεύει ένα ημιτελές αντικείμενο, ειδικά μετά από ακυρωμένη μεταφορά ή πελάτη που τερματίστηκε νωρίς. Ζητήστε από τον ιδιοκτήτη της υπηρεσίας να συγκρίνει το μέγεθος του προβλεπόμενου δοκιμαστικού αρχείου και το αξιόπιστο hash περιεχομένου με το αποθηκευμένο αντικείμενο όταν αναμένεται διατήρηση byte.

Οι δυαδική και ASCII λειτουργία είναι άλλη μια σύγκριση που αλλάζει το αποτέλεσμα. Η λειτουργία ASCII μπορεί να μεταφράζει τα τέλη γραμμών, οπότε τα αποθηκευμένα byte διαφέρουν από το τοπικό αρχείο ακόμη κι όταν η μεταφορά πέτυχε. Κρατήστε τη δυαδική λειτουργία για έλεγχο byte προς byte και μην προσθέτετε επιλογές μετατροπής για να φαίνεται διαφορετική μια αποτυχημένη μεταφορά.

Ένα συνηθισμένο STOR μπορεί να αντικαταστήσει υπάρχον αρχείο, και η άδεια σύνδεσης ή καταλόγου δεν θεμελιώνει άδεια δημιουργίας ή αντικατάστασης αντικειμένου σε αυτόν. Χρησιμοποιήστε για τη δοκιμή ένα απομακρυσμένο όνομα που δεν έχει χρησιμοποιηθεί ξανά.

Τι να συγκρίνετε πριν από μια νέα προσπάθεια

Μην προσθέτετε, μην συνεχίζετε και μην επαναλαμβάνετε μια μεταφόρτωση στα τυφλά πάνω σε ένα αβέβαιο μερικό αρχείο. Συμφωνήστε με τον ιδιοκτήτη αν θα ξεκινήσετε από την αρχή με νέο όνομα, θα χρησιμοποιήσετε τη διαδικασία ανάκτησης που υποστηρίζει η υπηρεσία ή θα αφαιρέσετε το αποτυχημένο δοκιμαστικό αντικείμενο.

Γράψτε το αποτέλεσμα ως μία από τέσσερις δηλώσεις: η τοπική ανάγνωση απέτυχε, η αποθήκευση απορρίφθηκε, η μεταφορά δεδομένων ακυρώθηκε, ή η μεταφορά ολοκληρώθηκε και τα αποθηκευμένα byte ταίριαξαν. Αυτό το αρχείο είναι ισχυρότερο αποτέλεσμα από το να αλλάζετε κέλυφος, VPN και ρυθμίσεις FTP μαζί μέχρι να εμφανιστεί ένα όνομα αρχείου, και λέει στον επόμενο άνθρωπο ποιο στάδιο να ελέγξει. Κρατήστε το καθαρισμένο κείμενο της απάντησης μαζί με αυτή τη δήλωση. Τότε μια νέα προσπάθεια είναι απόφαση, όχι αντανακλαστικό.

Σχετικά άρθρα