File Service
File Service tizimda fayllarni yuklash, saqlash, yuklab olish va qayta ishlash uchun mo‘ljallangan servis hisoblanadi. Ushbu servis fayllar bilan bog‘liq barcha jarayonlarni markazlashgan holda boshqaradi.
Asosiy vazifalari
- Foydalanuvchi tomonidan yuborilgan fayllarni qabul qilish
- Fayllarni belgilangan qoidalarga asosan tekshirish
- Fayllarni server yoki obyektli storage’da saqlash
- Fayllarni va rasmlarni qayta yuklab berish
- Rasmlarni dinamik o‘lchamlarga moslab qayta ishlash
- Fayllarni bir storage’dan boshqasiga migratsiya qilish
- Barcha muhim xatoliklarni loglash
Fayl yuklash imkoniyatlari
File Service fayllarni bir nechta usulda qabul qila oladi:
- Forma orqali yuborilgan fayllar
- Kategoriya asosida yuborilgan fayllar
- Base64 formatda yuborilgan fayllar
Yuklash jarayonida quyidagilar tekshiriladi:
- Fayl hajmi belgilangan limitdan oshmasligi
- Fayl kengaytmasi ruxsat etilgan formatlar ichida bo‘lishi
- Fayl kategoriyaga mos kelishi
- Fayl nomida xavfli yoki noto‘g‘ri yo‘l ko‘rsatkichlari bo‘lmasligi
Fayllarni saqlash mexanizmi
Fayllar ikki xil usulda saqlanishi mumkin:
- Server fayl tizimida
- MinIO obyektli storage’da
Saqlash jarayonida:
- Fayl haqida barcha meta ma’lumotlar bazaga yoziladi
- Fayl joylashuvi va saqlash turi qayd etiladi
- Sana, hajm, format va kategoriya ma’lumotlari saqlanadi
- Operatsiya tranzaksiya asosida bajariladi
Fayllarni yuklab olish
File Service saqlangan fayllarni foydalanuvchiga qaytarib bera oladi:
- Oddiy fayllar attachment sifatida beriladi
- Rasmlar brauzerda ko‘rish uchun inline rejimda beriladi
- Fayl mavjud bo‘lmasa, mos xatolik qaytariladi
- Content-Type va fayl nomi avtomatik belgilanadi
Rasmlar bilan ishlash
Rasmlar uchun qo‘shimcha imkoniyatlar mavjud:
- Kenglik va balandlik bo‘yicha aniq o‘lcham berish
- Foiz asosida masshtablash
- Faqat kenglik yoki faqat balandlik bo‘yicha moslash
- Agar kerakli o‘lcham mavjud bo‘lmasa, avtomatik yaratish
- Qayta ishlangan rasmni kesh sifatida saqlash
Migratsiya jarayoni
File Service fayllarni storage’lar o‘rtasida ko‘chirishni qo‘llab-quvvatlaydi:
- Serverdan MinIO’ga ko‘chirish
- MinIO’dan serverga qaytarish
- Limit asosida bosqichma-bosqich migratsiya
- Har bir migratsiya natijasi statistik ko‘rinishda qaytariladi
Xavfsizlik va xatoliklar
- Noto‘g‘ri so‘rovlar uchun aniq xatoliklar qaytariladi
- Fayl topilmasa yoki ruxsat bo‘lmasa xatolik beriladi
- Saqlash jarayonidagi muammolar loglanadi
- Muhim xatoliklar monitoring tizimiga yuboriladi
Xulosa
File Service — bu fayllar bilan ishlash uchun to‘liq funksional servis bo‘lib, u yuklashdan tortib, saqlash, qayta ishlash va migratsiyagacha bo‘lgan barcha jarayonlarni o‘z ichiga oladi. Servis yuqori xavfsizlik, moslashuvchanlik va kengaytiriluvchanlikni ta’minlaydi.