შეამოწმეთ საბოლოო FTP პასუხი, სანამ ატვირთვას დაეყრდნობით
პასუხი 150 ნიშნავს, რომ გადაცემა დაიწყო, და არა ის, რომ ფაილი შენახულია. გამოყავით ლოკალური წაკითხვა, შენახვის ნებართვა, მონაცემთა კავშირი და საბოლოო პასუხი.
FTP კლიენტს შეუძლია put ბრძანება მიიღოს დიდი ხნით ადრე, ვიდრე სერვერი ფაილს მიიღებს, და სწორედ ამ ორ მოვლენას შორის არსებულ უფსკრულში ცხოვრობს ატვირთვის საიდუმლოებების უმეტესობა. ოთხი ეტაპი უნდა დასრულდეს: ლოკალური ფაილი იკითხება, სერვერი იღებს შენახვის მოთხოვნას, მონაცემთა კავშირი გადააქვს ბაიტებს და გადაცემა აღწევს საბოლოო დადებით პასუხს. ეტაპების შედარება უფრო სასარგებლოა, ვიდრე კლიენტების შედარება, რადგან მომუშავე შესვლა და გამოჩენილი ფაილის სახელი ორივე ფინიშამდე ჩერდება.
წინასწარი პასუხი საბოლოო პასუხის წინააღმდეგ
STOR-ისთვის 125 ან 150 პასუხი წინასწარია. ის ამბობს, რომ სერვერი მზადაა სცადოს და რომ მონაცემთა კავშირი იხსნება, და არა ის, რომ ობიექტი არსებობს საბოლოო ფორმით. ოპერაცია მხოლოდ მაშინ სრულდება, როცა გადაცემა აღწევს დადებით დასრულების პასუხს, ჩვეულებრივ 226 ან 250, ამ ოპერაციის კონტექსტში.
426 ნიშნავს, რომ გადაცემა შეწყდა, და სხვა ბრძანების მიერ დაბეჭდილი რიცხვი არ არის ამ ატვირთვის შედეგი. წაიკითხეთ STOR-ის კუთვნილი პასუხი და არა ეკრანის ბოლო რიცხვი. თუ კლიენტი გადის ამ პასუხის მოსვლამდე, დასრულების რაიმე მტკიცებულება საერთოდ არ გაქვთ.
მართვის კავშირი მონაცემთა კავშირის წინააღმდეგ
ავთენტიფიკაცია და დირექტორიის სია იყენებენ მართვის კავშირს. ბაიტები იყენებენ ცალკე მონაცემთა კავშირს და მისი საბოლოო წერტილი ყოველი გადაცემისთვის მოლაპარაკდება. წარმატებული შესვლა ამტკიცებს მართვის გზას და არაფერს ამბობს იმაზე, მისაწვდომია თუ არა მონაცემთა მისამართი კლიენტიდან.
როცა სერვერი ვერ ხსნის მონაცემთა კავშირს, გამოიკვლიეთ მოლაპარაკებული საბოლოო წერტილი და დაშვებული გზა. პასიური რეჟიმი მაინც მოითხოვს გამოსაყენებელ მონაცემთა მისამართსა და პორტს, და კლიენტსა და სერვერს შორის არსებულ ფაირვოლს ან NAT მოწყობილობას შეუძლია დაუშვას მართვის სესია და დაბლოკოს მონაცემთა დიაპაზონი. როცა სერვერი პირიქით უარყოფს შენახვის მოთხოვნას, შეხედეთ დისტანციური გზის სახელს, ნებართვებს ან შენახვის ლიმიტებს. არც ერთი შტო არ აიხსნება იმით, რომ მართვის კავშირი ავთენტიფიცირდა.
FTP TLS-ის მეშვეობით SFTP-ის წინააღმდეგ
FTP TLS-ის მეშვეობით კვლავ FTP-ია: ორი კავშირი, FTP პასუხები და TLS განახლება თითოეულზე. SFTP არის SSH-ის ქვესისტემა ერთი კავშირით და სრულიად განსხვავებული ბრძანებების ნაკრებით. ისინი იზიარებენ მიზანს და თითქმის არაფერ სხვას, ამიტომ მათ შორის გადამავალი დიაგნოზი ჩვეულებრივ იწყება არასწორი ჟურნალების შედარებით.
არ გამორთოთ TLS, რომ შუალედურმა დამხმარემ სესია შეამოწმოს, და SFTP-ის წარუმატებლობა არ მიიჩნიოთ FTP პასუხების პრობლემად. curl-ის სახელმძღვანელო აღწერს ცხად TLS-ს, პასიურ რეჟიმს და ატვირთვის ოფციებს, თუ სკრიპტული ტესტი გჭირდებათ, და ის არის ცნობარი იმისა, თუ რას ცვლის სინამდვილეში თითოეული დროშა.
გამართვამდე აირჩიეთ ის პროტოკოლი, რომელსაც სერვისი ნამდვილად გთავაზობთ. სერვერი, რომელიც მხოლოდ SFTP-ს ლაპარაკობს, არასოდეს გამოსცემს 226 პასუხს, როგორც არ უნდა იყოს კლიენტი კონფიგურირებული.
ხილული ფაილის სახელი შენახული ობიექტის წინააღმდეგ
ხილული ფაილის სახელი შეიძლება წარმოადგენდეს არასრულ ობიექტს, განსაკუთრებით შეწყვეტილი გადაცემის ან ნაადრევად გასული კლიენტის შემდეგ. სთხოვეთ სერვისის მფლობელს, შეადაროს განზრახული სატესტო ფაილის ზომა და სანდო შიგთავსის ჰეში შენახულ ობიექტს, როცა ბაიტების შენარჩუნება მოსალოდნელია.
ორობითი და ASCII რეჟიმები კიდევ ერთი შედარებაა, რომელიც ცვლის შედეგს. ASCII რეჟიმს შეუძლია ხაზის დაბოლოებების თარგმნა, ამიტომ შენახული ბაიტები განსხვავდება ლოკალური ფაილისგან მაშინაც, როცა გადაცემა წარმატებით დასრულდა. შეინარჩუნეთ ორობითი რეჟიმი ბაიტ-ბაიტ შემოწმებისთვის და არ დაამატოთ კონვერტაციის ოფციები, რომ წარუმატებელი გადაცემა სხვაგვარად გამოიყურებოდეს.
ჩვეულებრივ STOR-ს შეუძლია არსებული ფაილის ჩანაცვლება, და შესვლის ან დირექტორიის ჩამოთვლის ნებართვა არ ადგენს მასში ობიექტის შექმნის ან ჩანაცვლების ნებართვას. ტესტისთვის გამოიყენეთ ადრე გამოუყენებელი დისტანციური სახელი.
რა უნდა შევადაროთ ხელახლა ცდამდე
არ დაამატოთ, არ გააგრძელოთ და არ გაიმეოროთ ატვირთვა ბრმად გაურკვეველ ნაწილობრივ ფაილზე. შეუთანხმდით მფლობელს, ხელახლა დაიწყოთ ახალი სახელით, გამოიყენოთ სერვისის მხარდაჭერილი აღდგენის პროცედურა, თუ წაშალოთ წარუმატებელი სატესტო ობიექტი.
ჩაწერეთ შედეგი ოთხი მტკიცებიდან ერთის სახით: ლოკალური წაკითხვა ვერ მოხერხდა, შენახვა უარყოფილ იქნა, მონაცემთა გადაცემა შეწყდა, ან გადაცემა დასრულდა და შენახული ბაიტები დაემთხვა. ეს ჩანაწერი უფრო ძლიერი შედეგია, ვიდრე shell-ის, VPN-ისა და FTP პარამეტრების ერთად შეცვლა ფაილის სახელის გამოჩენამდე, და ეუბნება შემდეგ ადამიანს, რომელი ეტაპი შეამოწმოს. შეინახეთ გასუფთავებული პასუხის ტექსტი ამ მტკიცებასთან ერთად. მაშინ ხელახალი ცდა გადაწყვეტილებაა და არა რეფლექსი.