আপলোড নষ্ট দেখাচ্ছে: দুই প্রান্তে হ্যাশ মিলিয়ে দেখুন
ব্যর্থ আপলোড টানেল বাইট বদলেছে তার প্রমাণ নয়। উদ্দিষ্ট ফাইলটিকে সংরক্ষিত ফলাফলের সঙ্গে মিলিয়ে দেখুন, তারপর প্রথম যে সীমায় তারা আলাদা হয় সেটি খুঁজুন।
যাঁরা আপলোড করা ফাইল খুলতে পারেন না তাঁরা প্রায়ই শোনেন যে VPN সেটি নষ্ট করেছে। এটি একটি অনুমান, পর্যবেক্ষণ নয়, এবং এটি পরীক্ষাযোগ্য। টানেলে হাত দেওয়ার আগে নির্ধারণ করুন, গন্তব্যে এখন যে বস্তুটি সংরক্ষিত আছে সেটি পাঠানোর কথা থাকা বস্তু থেকে আলাদা কি না। বাকি সব কিছু সেই উত্তরের ওপর নির্ভর করে।
অভিযোগ দিয়ে নয়, উদ্দিষ্ট বাইট দিয়ে শুরু করুন
সমস্যাটি পুনরুৎপাদন করে এমন একটি নিরীহ ফাইল বেছে নিন, অথবা নীতি অনুমতি দিলে প্রকৃত ফাইলটিই নিন। স্থানান্তরের আগে দুটি জিনিস লিখে রাখুন: বাইটে সঠিক আকার এবং একটি আধুনিক কনটেন্ট হ্যাশ। ফাইলের নাম, টাইমস্ট্যাম্প ও প্রিভিউ মেটাডেটা, এবং এর কোনোটিই কনটেন্ট চিহ্নিত করে না।
হ্যাশটি এমন অ্যালগরিদমে গণনা করুন যা দুই প্রান্তই চালাতে পারে, এবং কোনটি ব্যবহার করেছেন তা লিখে রাখুন। SHA-256 ও MD5-এর মধ্যে তুলনা কোনো তুলনা নয়, আর একই নাম ভাগ করা দুটি ভিন্ন ফাইলের মধ্যে তুলনাও তুলনা নয়।
PS> Get-FileHash -LiteralPath "C:\uploads\report.csv" -Algorithm SHA256
Hash Path
---- ----
9F2C... C:\uploads\report.csv
Microsoft-এর Get-FileHash রেফারেন্স কমান্ডটি এবং তার অ্যালগরিদম প্যারামিটার নথিভুক্ত করে, আর তুলনা অর্থহীন অমিল তৈরি করলে মানুষ ঠিক এই অংশটিই এড়িয়ে যায়।
প্রতি ধাপে একটি হ্যাশ, একই অ্যালগরিদম
এখন একই অ্যালগরিদম সংরক্ষিত বস্তুর ওপর প্রয়োগ করুন যেখানে সেটি শেষে থাকে, অনুমোদিত পদ্ধতিতে, অন্য কোনো টুলের মধ্য দিয়ে যাওয়া কপির ওপর নয়। প্রাপ্ত ফাইলটি স্থানীয়ভাবে সংরক্ষণ করে সেই কপির হ্যাশ নেওয়া এমন একটি ধাপ যোগ করে যা আপনি পরীক্ষা করেননি।
পরিষেবা যদি নিজস্ব অখণ্ডতা মান প্রকাশ করে, তবে সেটিকে আলাদা পর্যবেক্ষণ হিসেবে ধরুন। সরবরাহকারীর জানানো চেকসাম আপনাকে বলতে পারে সরবরাহকারী মনে করে সে কী সংরক্ষণ করেছে, আর এটি আপনার ক্লায়েন্ট যা পাঠিয়েছে তার একই দাবি নয়।
তিনটি ফল সম্ভব, এবং তারা ভিন্ন দিকে ইঙ্গিত করে। সমান হ্যাশ মানে বাইট অপরিবর্তিত পৌঁছেছে। পরিচিত রূপান্তরসহ ভিন্ন হ্যাশ মানে পরিষেবা সচেতনভাবেই নতুন একটি বস্তু তৈরি করেছে। রূপান্তর ছাড়া ভিন্ন হ্যাশ মানে দুই বিন্দুর মাঝে কিছু কনটেন্ট বদলেছে, আর পরের ধাপ হলো যেখানে এটি ঘটেছে সেই প্রাচীনতম সীমা খুঁজে বের করা।
স্থানান্তর ব্যর্থতা ও রূপান্তর আলাদা করুন
আংশিক আপলোড ও নষ্ট আপলোড ফাইল ব্রাউজারে একই রকম দেখায় এবং ভিন্ন ত্রুটি। স্থানান্তর সম্পূর্ণ হয়েছে কি না দেখুন: বাতিল অনুরোধ দেখানো একটি অ্যাপ্লিকেশন লগ, যে সংরক্ষিত ফাইলের আকার উৎসের একটি প্রিফিক্স, বা এমন একটি বস্তু যা আসলে প্রত্যাশিত এক্সটেনশনের নিচে সংরক্ষিত একটি ত্রুটি পাতা, সবই বদলে যাওয়া বাইটের বদলে অসম্পূর্ণ স্থানান্তর নির্দেশ করে।
রূপান্তর হলো অন্য সাধারণ ব্যাখ্যা। যে পরিষেবা ছবি পুনঃসংকুচিত করে, CSV লাইন শেষ পুনর্লিখন করে বা নথি রূপান্তর করে, সে বৈধভাবেই উৎস থেকে ভিন্ন হ্যাশ তৈরি করবে, আর সেটি নষ্ট হওয়া নয়। বিশ্বস্ত কপি বলে দাবি করা ধাপটির সঙ্গে তুলনা করুন, চূড়ান্ত উপস্থাপনা ফরম্যাটের সঙ্গে নয়।
বিলম্ব ও ক্ষতি তৃতীয় শ্রেণির। তারা ক্লায়েন্টকে সময় শেষ করাতে, পুনরায় চেষ্টা করতে বা হাল ছাড়াতে পারে, আর এর কোনোটিই বোঝায় না যে সার্ভার গ্রহণ করা বাইট নিঃশব্দে বদলানো হয়েছে। টানেলকে কিছু দায়ী করার আগে স্থানান্তরের ফলাফল দেখুন।
সবকিছু না বদলে দ্বিতীয় পথ চেষ্টা করুন
হ্যাশ সত্যিই আলাদা হলে এবং কোনো রূপান্তর না থাকলে, একই ফাইল, ক্লায়েন্ট, প্রোটোকল ও গন্তব্য VPN-এর বদলে স্থানীয় নেটওয়ার্কের মতো অন্য একটি সমর্থিত পথে পুনরাবৃত্তি করুন। একটি চলক বদলান। ক্লায়েন্ট, প্রান্তবিন্দু ও টুল একসঙ্গে বদলালে এমন ফল পাবেন যা আপনি দায়ী করতে পারবেন না।
তুলনাটি দুই দিকেই সৎ রাখুন। হ্যাশ আপনাকে বলে দুই বিন্দু কনটেন্ট নিয়ে একমত বা ভিন্নমত; এটি বলে না কোন দিক বিশ্বাসযোগ্য, তাই প্রত্যাশিত মান ও যাচাইকে আপনি যে আস্থা মডেলের ওপর সত্যিই নির্ভর করেন তার ভেতরেই রাখুন।
টিকিটে একটি নির্দিষ্ট বাক্য দিয়ে শেষ করুন: স্থানান্তর আগেভাগে থেমে গেছে, অ্যাপ্লিকেশন বস্তুটি রূপান্তর করেছে, স্টোরেজ সেটি বদলেছে, অথবা বাইট মিলে যায় এবং সেগুলো পড়াই ব্যর্থতা। এগুলোর প্রত্যেকের আলাদা মালিক, আর কোনোটিই ডিফল্টভাবে VPN নয়।