Klien FTP dapat menerima perintah put jauh sebelum server menerima berkasnya, dan celah antara kedua peristiwa itulah tempat sebagian besar misteri unggahan berada. Empat tahap harus selesai: berkas lokal dibaca, server menerima permintaan penyimpanan, koneksi data membawa byte, dan transfer mencapai balasan positif terakhir. Membandingkan tahap lebih berguna daripada membandingkan klien, karena login yang berhasil dan nama berkas yang muncul keduanya berhenti sebelum garis akhir.

Balasan pendahuluan versus balasan terakhir

Untuk STOR, balasan 125 atau 150 bersifat pendahuluan. Balasan itu menyatakan server bersedia mencoba dan koneksi data sedang dibuka, bukan bahwa objek sudah ada dalam bentuk akhirnya. Operasi baru selesai ketika transfer mencapai balasan penyelesaian positif, umumnya 226 atau 250, dalam konteks operasi tersebut.

426 berarti transfer dibatalkan, dan angka yang dicetak perintah lain bukan hasil unggahan ini. Bacalah balasan yang menjadi milik STOR, bukan angka terakhir di layar. Jika klien keluar sebelum balasan itu tiba, Anda tidak punya bukti penyelesaian sama sekali.

Koneksi kendali versus koneksi data

Autentikasi dan daftar direktori memakai koneksi kendali. Byte memakai koneksi data terpisah, dan titik ujungnya dinegosiasikan untuk setiap transfer. Login yang berhasil membuktikan jalur kendali dan tidak mengatakan apa pun tentang apakah alamat data dapat dijangkau dari klien.

Bila server tidak dapat membuka koneksi data, selidiki titik ujung yang dinegosiasikan dan jalur yang diizinkan. Mode pasif tetap memerlukan alamat data dan porta yang dapat dipakai, dan firewall atau perangkat NAT antara klien dan server dapat mengizinkan sesi kendali sambil memblokir rentang data. Bila server justru menolak permintaan penyimpanan, periksa nama jalur jarak jauh, izin, atau batas penyimpanan. Tidak ada cabang yang dijelaskan oleh fakta bahwa koneksi kendali sudah terautentikasi.

FTP di atas TLS versus SFTP

FTP di atas TLS tetap FTP: dua koneksi, balasan FTP, dan peningkatan TLS pada masing-masing. SFTP adalah subsistem SSH dengan satu koneksi dan rangkaian perintah yang sangat berbeda. Keduanya berbagi tujuan dan hampir tidak berbagi hal lain, sehingga diagnosis yang melompat di antaranya biasanya dimulai dengan membandingkan log yang salah.

Jangan menonaktifkan TLS agar pembantu perantara dapat memeriksa sesi, dan jangan perlakukan kegagalan SFTP sebagai masalah balasan FTP. panduan curl mendokumentasikan TLS eksplisit, mode pasif, dan opsi unggah bila Anda memerlukan uji berskrip, dan itulah rujukan tentang apa yang sebenarnya diubah setiap tanda.

Pilih protokol yang benar-benar ditawarkan layanan sebelum menelusuri masalahnya. Server yang hanya berbicara SFTP tidak akan pernah menghasilkan balasan 226, apa pun konfigurasi kliennya.

Nama berkas yang terlihat versus objek tersimpan

Nama berkas yang terlihat dapat mewakili objek yang belum lengkap, terutama setelah transfer yang dibatalkan atau klien yang keluar terlalu awal. Mintalah pemilik layanan membandingkan ukuran berkas uji yang dimaksudkan dan hash isi yang tepercaya dengan objek tersimpan bila pelestarian byte diharapkan.

Mode biner dan ASCII adalah perbandingan lain yang mengubah hasil. Mode ASCII dapat menerjemahkan akhir baris, sehingga byte tersimpan berbeda dari berkas lokal meskipun transfer berhasil. Pertahankan mode biner untuk pemeriksaan byte demi byte, dan jangan menambahkan opsi konversi agar transfer yang gagal tampak berbeda.

STOR biasa dapat mengganti berkas yang sudah ada, dan izin untuk login atau mendaftar direktori tidak menetapkan izin untuk membuat atau mengganti objek di dalamnya. Gunakan nama jarak jauh yang belum pernah dipakai untuk uji tersebut.

Apa yang harus dibandingkan sebelum mencoba lagi

Jangan menambahkan, melanjutkan, atau mengulang unggahan secara buta pada berkas sebagian yang belum pasti. Sepakati dengan pemilik apakah akan memulai ulang dengan nama baru, memakai prosedur pemulihan yang didukung layanan, atau menghapus objek uji yang gagal.

Tulis hasilnya sebagai salah satu dari empat pernyataan: pembacaan lokal gagal, penyimpanan ditolak, transfer data dibatalkan, atau transfer selesai dan byte tersimpan cocok. Catatan itu merupakan hasil yang lebih kuat daripada mengubah shell, VPN, dan pengaturan FTP sekaligus sampai nama berkas muncul, dan catatan itu memberi tahu orang berikutnya tahap mana yang harus diperiksa. Simpan teks balasan yang sudah dibersihkan bersama pernyataan tersebut. Dengan begitu, percobaan ulang adalah keputusan, bukan refleks.

Artikel terkait