अपलोड पर भरोसा करने से पहले अंतिम FTP उत्तर जाँचें
150 उत्तर का अर्थ है कि स्थानांतरण शुरू हुआ, यह नहीं कि फ़ाइल संग्रहीत है। स्थानीय पढ़ाई, संग्रहण अनुमति, डेटा कनेक्शन और अंतिम उत्तर को अलग रखें।
FTP क्लाइंट सर्वर द्वारा फ़ाइल प्राप्त करने से बहुत पहले put आदेश स्वीकार कर सकता है, और इन दो घटनाओं के बीच का अंतराल ही वह जगह है जहाँ अधिकांश अपलोड रहस्य रहते हैं। चार चरण पूरे होने चाहिए: स्थानीय फ़ाइल पढ़ी जाती है, सर्वर संग्रहण अनुरोध स्वीकार करता है, डेटा कनेक्शन बाइट्स ले जाता है, और स्थानांतरण एक अंतिम सकारात्मक उत्तर तक पहुँचता है। चरणों की तुलना करना क्लाइंट की तुलना से अधिक उपयोगी है, क्योंकि काम करने वाला लॉगिन और दिखाई देने वाला फ़ाइल नाम दोनों अंत से पहले रुक जाते हैं।
प्रारंभिक उत्तर बनाम अंतिम उत्तर
STOR के लिए, 125 या 150 उत्तर प्रारंभिक है। यह कहता है कि सर्वर प्रयास करने को तैयार है और डेटा कनेक्शन खुल रहा है, यह नहीं कि ऑब्जेक्ट अपने अंतिम रूप में मौजूद है। कार्य तभी पूरा होता है जब स्थानांतरण उस कार्य के संदर्भ में सकारात्मक समापन उत्तर, सामान्यतः 226 या 250, तक पहुँचता है।
426 का अर्थ है कि स्थानांतरण रद्द हुआ, और किसी अन्य आदेश द्वारा छापी गई संख्या इस अपलोड का परिणाम नहीं है। STOR से संबंधित उत्तर पढ़ें, स्क्रीन की अंतिम संख्या नहीं। यदि क्लाइंट उस उत्तर के आने से पहले बाहर निकल जाए, तो आपके पास समापन का कोई प्रमाण ही नहीं है।
नियंत्रण कनेक्शन बनाम डेटा कनेक्शन
प्रमाणीकरण और निर्देशिका सूची नियंत्रण कनेक्शन का उपयोग करते हैं। बाइट्स अलग डेटा कनेक्शन का उपयोग करते हैं, और उसका अंतिम बिंदु हर स्थानांतरण के लिए तय किया जाता है। सफल लॉगिन नियंत्रण पथ साबित करता है और इस बारे में कुछ नहीं कहता कि डेटा पता क्लाइंट से पहुँचने योग्य है या नहीं।
जब सर्वर डेटा कनेक्शन नहीं खोल सकता, तो तय किया गया अंतिम बिंदु और अनुमत पथ जाँचें। निष्क्रिय मोड को अभी भी उपयोगी डेटा पता और पोर्ट चाहिए, और क्लाइंट तथा सर्वर के बीच फ़ायरवॉल या NAT उपकरण नियंत्रण सत्र की अनुमति देकर डेटा श्रेणी को अवरुद्ध कर सकता है। जब सर्वर इसके बजाय संग्रहण अनुरोध अस्वीकार करता है, तो दूरस्थ पथ नाम, अनुमतियाँ या संग्रहण सीमाएँ देखें। दोनों में से कोई भी शाखा नियंत्रण कनेक्शन के प्रमाणित होने से समझाई नहीं जाती।
TLS पर FTP बनाम SFTP
TLS पर FTP अभी भी FTP है: दो कनेक्शन, FTP उत्तर और हर एक पर TLS अपग्रेड। SFTP, SSH की उपप्रणाली है जिसमें एक कनेक्शन और पूरी तरह अलग आदेश समूह है। वे एक उद्देश्य और लगभग कुछ भी साझा नहीं करते, इसलिए उनके बीच जाने वाला निदान सामान्यतः गलत लॉग की तुलना से शुरू होता है।
किसी मध्यवर्ती सहायक को सत्र देखने देने के लिए TLS बंद न करें, और SFTP विफलता को FTP उत्तर की समस्या न मानें। curl पुस्तिका यदि आपको स्क्रिप्ट आधारित परीक्षण चाहिए तो स्पष्ट TLS, निष्क्रिय मोड और अपलोड विकल्पों का दस्तावेज़ीकरण करती है, और हर फ़्लैग वास्तव में क्या बदलता है इसका यही संदर्भ है।
डिबग करने से पहले वह प्रोटोकॉल चुनें जो सेवा वास्तव में देती है। जो सर्वर केवल SFTP बोलता है वह कभी 226 उत्तर नहीं देगा, क्लाइंट कैसे भी कॉन्फ़िगर हो।
दिखाई देने वाला फ़ाइल नाम बनाम संग्रहीत ऑब्जेक्ट
दिखाई देने वाला फ़ाइल नाम अधूरे ऑब्जेक्ट का प्रतिनिधित्व कर सकता है, विशेषकर रद्द हुए स्थानांतरण या जल्दी बाहर निकल गए क्लाइंट के बाद। जब बाइट संरक्षण अपेक्षित हो तो सेवा के स्वामी से अनुरोध करें कि वे इच्छित परीक्षण फ़ाइल का आकार और विश्वसनीय सामग्री हैश की संग्रहीत ऑब्जेक्ट से तुलना करें।
बाइनरी और ASCII मोड एक और तुलना हैं जो परिणाम बदलती हैं। ASCII मोड पंक्ति अंत का अनुवाद कर सकता है, इसलिए स्थानांतरण सफल होने पर भी संग्रहीत बाइट्स स्थानीय फ़ाइल से भिन्न होते हैं। बाइट-दर-बाइट जाँच के लिए बाइनरी मोड रखें, और विफल स्थानांतरण को अलग दिखाने के लिए रूपांतरण विकल्प न जोड़ें।
सामान्य STOR मौजूदा फ़ाइल को बदल सकता है, और लॉगिन या निर्देशिका सूची की अनुमति उसमें ऑब्जेक्ट बनाने या बदलने की अनुमति स्थापित नहीं करती। परीक्षण के लिए पहले से अप्रयुक्त दूरस्थ नाम का उपयोग करें।
फिर से प्रयास से पहले क्या तुलना करें
अनिश्चित आधी फ़ाइल पर अंधाधुंध जोड़ें, फिर से शुरू करें या अपलोड दोहराएँ नहीं। स्वामी के साथ सहमत हों कि नए नाम के तहत फिर से शुरू करना है, सेवा की समर्थित रिकवरी प्रक्रिया अपनानी है, या विफल परीक्षण ऑब्जेक्ट हटाना है।
परिणाम को चार में से एक कथन के रूप में लिखें: स्थानीय पढ़ाई विफल रही, संग्रहण अस्वीकार हुआ, डेटा स्थानांतरण रद्द हुआ, या स्थानांतरण पूरा हुआ और संग्रहीत बाइट्स मेल खाए। वह रिकॉर्ड शेल, VPN और FTP सेटिंग्स को एक साथ बदलकर फ़ाइल नाम दिखने तक प्रतीक्षा करने से अधिक ठोस परिणाम है, और यह अगले व्यक्ति को बताता है कि कौन सा चरण जाँचना है। साफ़ किया गया उत्तर पाठ उस कथन के साथ रखें। तब फिर से प्रयास एक निर्णय है, प्रतिक्रिया नहीं।