File transfer — fayl mazmuni va zarur metama’lumotlarini bir tizimdan boshqasiga uzatish jarayonidir. U lokal tarmoq, Internet, olinadigan tashuvchi yoki cloud storage orqali bajarilishi mumkin. To‘g‘ri mexanizm hajm, maxfiylik, yaxlitlik, kechikish, qayta davom ettirish va ikki tomonning protokol imkoniyatlariga qarab tanlanadi.
Keng tarqalgan protokollar
FTP alohida control va data connectionlardan foydalanadi hamda active va passive rejimlarga ega. Oddiy FTP credential va ma’lumotni shifrlamaydi. FTPS FTPga TLS qo‘shadi, SFTP esa SSH ichidagi butunlay boshqa protokoldir. Nomlari o‘xshash bo‘lsa-da, port, autentifikatsiya va firewall xatti-harakati farq qiladi.
HTTP va HTTPS download, upload hamda object storage APIlarida keng ishlatiladi. Range request uzilgan downloadni davom ettirishga yordam beradi. SCP sodda SSH nusxalash uchun, rsync esa bloklar farqini topib o‘zgargan qismlarni uzatish uchun ishlatiladi. SMB va NFS faylni masofaviy filesystem sifatida taqdim etadi, bu bir martalik transferdan boshqa semantikadir.
Uzatish bosqichlari
Jo‘natuvchi faylni o‘qiydi, protokol uni blok yoki oqimga ajratadi, transport tarmoq orqali yetkazadi va qabul qiluvchi diskka yozadi. Katta faylda vaqtinchalik nom ishlatilib, barcha bloklar tekshirilgach atomic rename bajarilishi mumkin. Shunda boshqa process yarim yozilgan faylni tayyor deb qabul qilmaydi.
Resume mexanizmi qaysi offsetgacha ma’lumot to‘g‘ri olinganini bilishi kerak. Faqat lokal fayl hajmiga tayanish noto‘g‘ri nusxani davom ettirishi mumkin. Remote object versiyasi, ETag yoki checksum bilan birga tekshiriladi.
Yaxlitlik
TCP paket yetkazilishini tekshiradi, lekin transferdan keyingi disk xatosi, noto‘g‘ri fayl tanlash yoki vosita bugini to‘liq aniqlamaydi. SHA-256 kabi kriptografik hash jo‘natuvchi va qabul qiluvchi nusxalarini solishtirishga imkon beradi. Hash ishonchli kanal orqali olinmasa, hujumchi fayl bilan birga hashni ham almashtirishi mumkin.
Digital signature artifactning ma’lum publisher tomonidan imzolanganini tasdiqlaydi. Package registry va release pipeline checksum, signature va provenance metadata birikmasidan foydalanishi mumkin. Oddiy fayl nomi yoki hajmi yaxlitlik dalili emas.
Matn va binary rejimi
Eski FTP vositalarida ASCII rejimi qator oxirlarini platformaga mos o‘zgartiradi, binary rejimi esa oktetlarni aynan uzatadi. Image, archive, executable va zamonaviy ko‘p formatlar binary rejimda yuboriladi. Noto‘g‘ri ASCII transfer binary faylni buzadi. Matn normalizatsiyasi kerak bo‘lsa, u transferdan alohida boshqariladigan transformatsiya sifatida bajariladi.
Filename encoding, Unicode normalization va case sensitivity ham platformalar orasida farq qiladi. Bir katalogdagi nomlar Windowsda to‘qnashib, Linuxda alohida bo‘lishi mumkin. Arxiv formatidan foydalanish ko‘p fayl, ruxsat va symlinklarni bir birlikda saqlashga yordam beradi, lekin extraction path traversalga qarshi tekshiriladi.
Xavfsizlik
Transport TLS yoki SSH bilan shifrlanadi va server identifikatori sertifikat yoki host key orqali tekshiriladi. Faqat shifrlashni yoqib, identifikatsiyani tekshirmaslik man-in-the-middle xavfini qoldiradi. Credential minimal ruxsatli, qisqa muddatli va audit qilinadigan bo‘ladi.
Qabul qilingan fayl ishonchsiz input hisoblanadi. Hajm limiti, MIME va real format, malware scan, arxiv ichidagi fayl soni hamda saqlash pathi tekshiriladi. Upload nomi to‘g‘ridan-to‘g‘ri server filesystem yo‘liga qo‘shilmaydi.
Kuzatuv
Transfer metrikasi byte soni, davomiylik, throughput, retry va yakuniy checksum natijasini saqlaydi. Fayl mazmuni logga yozilmaydi. Correlation ID jo‘natuvchi va qabul qiluvchi yozuvlarini bog‘lab, qisman muvaffaqiyatsizlikni aniqlashga yordam beradi.
Bog‘liq tushunchalar
FTP, SFTP, HTTPS, Rsync, Checksum, Active mode, Passive mode