Bosh sahifa Wiki File upload

File upload

File upload — klientdan server yoki bulut saqlash tizimiga fayl mazmuni va unga tegishli metama’lumotni uzatish jarayonidir. Oddiy ko‘ringan bu funksiya katta oqim, uzilish, format tekshiruvi, authorization va zararli kontent xavfini bir vaqtda boshqaradi. Xavfsiz dizayn foydalanuvchi yuborgan nom, MIME turi va extensionga ishonmaydi.

Qabul qilish va oqim

HTTP’da kichik fayl multipart/form-data bilan, katta obyekt esa to‘g‘ridan-to‘g‘ri body yoki resumable multipart protokol bilan yuborilishi mumkin. Server butun faylni RAMga yig‘masdan stream qilib, maksimal hajmni o‘qish jarayonida nazorat qiladi. Content-Length yo‘q yoki yolg‘on bo‘lishi mumkin; amalda o‘qilgan baytlar limiti asosiy himoyadir.

Uzilgan katta upload bo‘laklar orqali davom ettiriladi. Har bo‘lak upload ID, tartib, offset va checksum bilan tekshiriladi. Finalize amali barcha bo‘lak mavjudligini va umumiy hashni tasdiqlab, vaqtinchalik obyektni atomik nashr qiladi. Tugallanmagan sessiyalar lifecycle policy bilan tozalanadi.

Nom va saqlash

Original filename faqat ko‘rsatish uchun metadata sifatida saqlanadi. Filesystem yo‘li server yaratgan tasodifiy ID yoki content hashdan tuziladi. Slash, control character, Unicode normalizatsiyasi va juda uzun nomlar sanitizatsiya qilinadi. Bir xil nom mavjud faylni tasodifan overwrite qilmasligi kerak.

Uploadlar executable web rootdan tashqarida, bajarish ruxsatisiz saqlanadi. Obyekt storage’da private ACL standart bo‘ladi; download authorizationdan keyin qisqa muddatli URL yoki proxy orqali beriladi. Multi-tenant kalit prefiksi server tomonda tenant ID bilan belgilanadi.

Kontent tekshiruvi

Extension va klient MIME header’i signal, lekin dalil emas. Server magic bytes, parser va biznes qoidasi bilan haqiqiy formatni tekshiradi. Rasm qayta encode qilinsa, yashirin metadata va parserga noaniq polyglot qismlar kamayadi. Arxivlar uchun ichki fayl soni, umumiy ochilgan hajm, compression ratio va path traversal tekshiriladi; zip bomb resursni tugatmasligi kerak.

Antivirus yoki sandbox skani asinxron ishlashi mumkin. Fayl skan tugaguncha quarantine holatida qoladi va foydalanuvchiga tarqatilmaydi. Scanner ham ishonchsiz parser bo‘lgani uchun izolyatsiya, timeout va resurs limitiga ega. “Toza” natija barcha noma’lum tahdid yo‘q degani emas.

Ruxsat va operatsiya

Upload boshlash, bo‘lak qo‘shish, finalize va download har birida authorization tekshiriladi. Presigned URL metod, obyekt kaliti, hajm va muddat bilan cheklanadi. Rate limit hamda tenant quota storage abuse’ni boshqaradi. Audit log fayl ID, egasi, hash, hajm va skan natijasini saqlaydi, lekin faylning maxfiy mazmunini yozmaydi.

Checksum transport buzilishini aniqlaydi; u faylning xavfsiz yoki ishonchli manbadan kelganini tasdiqlamaydi. Zarur holatda digital signature alohida tekshiriladi. Backup, retention va foydalanuvchi o‘chirish talabi vaqtinchalik bo‘laklar hamda CDN nusxalarini qamrab oladi.

+## Rasm va hujjat qayta ishlash

Thumbnail, OCR yoki metadata extraction xizmatlari fayl qabul qiluvchi asosiy jarayondan ajratiladi. Parser zaifligi yuz bersa, worker minimal vakolat, read-only image va tarmoqsiz sandboxda ishlaydi. Original fayl o‘zgarmas obyekt sifatida saqlansa, hosil qilingan variantlar uning hash va transform versiyasi bilan bog‘lanadi. Bir xil faylni deduplication qilish tenantlar orasida mavjudlik side-channel’ini ochmasligi kerak. EXIF’dagi GPS va muallif ma’lumoti biznesga kerak bo‘lmasa olib tashlanadi. PDF preview active contentni bajarmaydigan rendererda yaratiladi. Transform muvaffaqiyatsiz bo‘lsa, fayl avtomatik “xavfsiz” deb nashr qilinmaydi, quarantine sabab kodi bilan qoladi.

Bog‘liq tushunchalar

Multipart upload, Object storage, MIME type, Checksum, Antivirus scanning, Presigned URL, Quarantine