Klien FTP boleh menerima arahan put jauh sebelum pelayan menerima fail itu, dan jurang antara dua peristiwa inilah tempat kebanyakan misteri muat naik tinggal. Empat peringkat mesti selesai: fail setempat dibaca, pelayan menerima permintaan storan, sambungan data membawa bait, dan pemindahan mencapai balasan positif akhir. Membandingkan peringkat lebih berguna daripada membandingkan klien, kerana log masuk yang berjaya dan nama fail yang kelihatan kedua-duanya berhenti sebelum penamat.

Balasan awal berbanding balasan akhir

Untuk STOR, balasan 125 atau 150 adalah awal. Ia menyatakan pelayan bersedia mencuba dan sambungan data sedang dibuka, bukan bahawa objek itu wujud dalam bentuk akhirnya. Operasi hanya lengkap apabila pemindahan mencapai balasan penyempurnaan positif, biasanya 226 atau 250, dalam konteks operasi itu.

426 bermaksud pemindahan telah dihentikan, dan nombor yang dicetak oleh arahan lain bukan hasil muat naik ini. Baca balasan yang tergolong dalam STOR itu, bukan nombor terakhir pada skrin. Jika klien keluar sebelum balasan itu tiba, anda tidak mempunyai bukti penyempurnaan langsung.

Sambungan kawalan berbanding sambungan data

Pengesahan dan penyenaraian direktori menggunakan sambungan kawalan. Bait menggunakan sambungan data berasingan, dan titik hujungnya dirundingkan bagi setiap pemindahan. Log masuk yang berjaya membuktikan laluan kawalan dan tidak berkata apa-apa tentang sama ada alamat data boleh dicapai dari klien.

Apabila pelayan tidak dapat membuka sambungan data, siasat titik hujung yang dirundingkan dan laluan yang dibenarkan. Mod pasif masih memerlukan alamat data dan port yang boleh digunakan, dan peranti firewall atau NAT antara klien dan pelayan boleh membenarkan sesi kawalan sambil menyekat julat data. Apabila pelayan sebaliknya menolak permintaan storan, lihat nama laluan jauh, kebenaran atau had storan. Kedua-dua cabang tidak dijelaskan oleh sambungan kawalan yang telah disahkan.

FTP melalui TLS berbanding SFTP

FTP melalui TLS masih FTP: dua sambungan, balasan FTP, dan peningkatan TLS pada setiap satu. SFTP ialah subsistem SSH dengan satu sambungan dan set arahan yang sama sekali berbeza. Mereka berkongsi tujuan dan hampir tiada yang lain, jadi diagnosis yang merentasi kedua-duanya biasanya bermula dengan membandingkan log yang salah.

Jangan lumpuhkan TLS supaya pembantu perantaraan dapat memeriksa sesi, dan jangan anggap kegagalan SFTP sebagai masalah balasan FTP. manual curl mendokumenkan TLS eksplisit, mod pasif dan pilihan muat naik jika anda perlukan ujian berskrip, dan ia menjadi rujukan tentang apa yang sebenarnya diubah oleh setiap bendera.

Pilih protokol yang benar-benar ditawarkan oleh perkhidmatan sebelum anda menyahpepijatnya. Pelayan yang hanya bertutur SFTP tidak akan sekali-kali menghasilkan balasan 226, tidak kira bagaimana klien dikonfigurasikan.

Nama fail yang kelihatan berbanding objek yang disimpan

Nama fail yang kelihatan boleh mewakili objek yang tidak lengkap, terutamanya selepas pemindahan dihentikan atau klien yang keluar awal. Minta pemilik perkhidmatan membandingkan saiz fail ujian yang dimaksudkan dan hash kandungan yang dipercayai dengan objek yang disimpan apabila pemeliharaan bait dijangka.

Mod binari dan ASCII ialah perbandingan lain yang mengubah hasil. Mod ASCII boleh menterjemah penghujung baris, jadi bait yang disimpan berbeza daripada fail setempat walaupun pemindahan berjaya. Kekalkan mod binari untuk pemeriksaan bait demi bait, dan jangan tambah pilihan penukaran untuk membuat pemindahan yang gagal kelihatan berbeza.

STOR biasa boleh menggantikan fail sedia ada, dan kebenaran untuk log masuk atau menyenaraikan direktori tidak mewujudkan kebenaran untuk mencipta atau menggantikan objek di dalamnya. Gunakan nama jauh yang belum pernah digunakan untuk ujian.

Apa yang perlu dibandingkan sebelum mencuba semula

Jangan menambah, menyambung semula atau mengulang muat naik secara membuta tuli pada fail separa yang tidak pasti. Bersepakat dengan pemilik sama ada untuk memulakan semula dengan nama baharu, menggunakan prosedur pemulihan yang disokong perkhidmatan, atau membuang objek ujian yang gagal.

Tulis hasilnya sebagai salah satu daripada empat pernyataan: bacaan setempat gagal, storan ditolak, pemindahan data dihentikan, atau pemindahan selesai dan bait yang disimpan sepadan. Rekod itu ialah hasil yang lebih kukuh daripada menukar shell, VPN dan tetapan FTP serentak sehingga nama fail muncul, dan ia memberitahu orang seterusnya peringkat mana yang perlu diperiksa. Simpan teks balasan yang telah disanitasi bersama pernyataan itu. Kemudian percubaan semula ialah keputusan, bukan refleks.

Artikel berkaitan