Firebase Storage: bu nima, fayllarni yuklash va bulutda saqlash

Muallif: IT Sectr Nashr etilgan: 2026-04-28 O'qish vaqti: 14 daq

Firebase Storage — bu Google ekotizimiga kiruvchi, mobil va veb-ilovalardan tasvirlar, videolar, audio va boshqa ikkilik ma'lumotlarni yuklash va yuklab olish uchun mo'ljallangan, foydalanuvchi fayllarini saqlash uchun bulutli xizmatdir. Oddiy bulutli diskdan farqli o'laroq, Storage Firebase Authentication va Security Rules bilan integratsiyalanadi, bu esa har bir faylga so'rov darajasida moslashuvchan kirishni chegaralash imkonini beradi. Google Firebase (2026) ma'lumotlariga ko'ra, xizmat kuniga 500 milliondan ortiq fayl operatsiyalarini qayta ishlaydi va masshtablanuvchi saqlashni server infratuzilmasini boshqarish zaruratisiz ta'minlaydi.

Asosiy

  • Firebase Storage — Firebase platformasiga integratsiyalangan ilova fayllari uchun bulutli ombor.
  • Yuklash mijozdan to'g'ridan-to'g'ri SDK orqali, o'z serverini chetlab o'tib amalga oshiriladi.
  • Xavfsizlik qoidalari har bir faylga kirishni autentifikatsiya va tarkib asosida nazorat qilish imkonini beradi.
  • Uzilishlarga chidamlilik uzilish nuqtasidan avtomatik davom ettirish bilan ta'minlanadi.
  • Cloud Functions bilan integratsiya yuklashdan keyin fayllarni qayta ishlash imkonini beradi.

Firebase Storage nima va u qanday tuzilgan

Firebase Storage — bu Google Cloud Storage asosida qurilgan, Android, iOS va veb-platformalar uchun SDK taqdim etadigan bulutli obyekt saqlash tizimidir. Har bir fayl Google Cloud baketida obyekt sifatida saqlanadi va fayl tizimiga o'xshash yo'l bilan manzillanadi: gs://bucket-name/path/to/file.jpg. Bitta faylning hajmi 5 TB gacha yetishi mumkin, bu esa oldindan siqilmasdan har qanday media ma'lumotlarni saqlash imkonini beradi.

Firebase Storage arxitekturasi klassik papka ierarxiyasidan farqli o'laroq havola-referens modelidan (gsutil references) foydalanadi, garchi SDK dasturchi qulayligi uchun kataloglar bilan interfeysni taqdim etsa ham. Jismonan, barcha obyektlar baketning tekis nomlar maydonida saqlanadi va virtual papkalar yo'l prefikslari yordamida yaratiladi. Bu fayllar sonidan qat'i nazar, chiziqli qidiruv samaradorligini ta'minlaydi.

Firebase Storage-ning Google Cloud Storage dan to'g'ridan-to'g'ri foydalanishga nisbatan asosiy afzalligi — Firebase Authentication va Security Rules bilan o'rnatilgan integratsiyadir. Dasturchi alohida IAM rollari va xizmat hisoblarini sozlashi shart emas: kirish qoidalari Firebase Realtime Database Rules-ga o'xshash deklarativ tilda yoziladi va har bir so'rovda avtomatik qo'llaniladi.

Baket tuzilishi va fayl yo'llari

Firebase Storage baketi Firebase konsolida xizmatni ulashda avtomatik yaratiladi. Faylga yo'l /papka_nomi/fayl_nomi tamoyili bo'yicha quriladi va ichki darajalarni o'z ichiga olishi mumkin. Yo'llarni foydalanuvchilar o'rtasida ma'lumotlarni ajratish uchun /users/{userId}/images/{imageId}.jpg sxemasi bo'yicha tashkil qilish tavsiya etiladi. Bunday tuzilma xavfsizlik qoidalarini yozishni soddalashtiradi, chunki yo'l egasining identifikatorini o'z ichiga oladi.

Shuni tushunish muhimki, Firebase Storage klassik ma'noda relyatsion ma'lumotlar bazasi yoki fayl serveri emas. Bu butun fayllarni o'qish va yozish operatsiyalari uchun optimallashtirilgan obyekt saqlash tizimidir. Faylning bir qismini yangilash mumkin emas: bir xil yo'l bilan qayta yuklashda eski obyekt yangisi bilan almashtiriladi. Kichik tuzilgan ma'lumotlarni saqlash uchun Firebase Realtime Database yoki Cloud Firestore-dan foydalaning.

Firebase Storage narxlari va cheklovlari

Firebase Storage narxlari saqlangan ma'lumotlar hajmi va operatsiyalar soniga bog'liq. Bepul tarif (Spark) kuniga 5 GB saqlash, 20 000 yozish operatsiyasi va 50 000 o'qish operatsiyasini o'z ichiga oladi. Pullik tarif (Blaze) haqiqiy foydalanish bo'yicha to'lanadi: saqlangan ma'lumotlar uchun GB uchun $0,026, 10 000 yozish operatsiyasi uchun $0,05 va 10 000 o'qish operatsiyasi uchun $0,004. Qo'shimcha ravishda chiquvchi trafik uchun to'lov olinadi.

Bir necha ming foydalanuvchiga ega mobil ilovalarning aksariyati uchun prototiplash va sinov bosqichida bepul limit yetarli. Yuz minglab foydalanuvchilarga masshtablashda, yuklash va mijoz tomonida keshlashga optimallashtirilgan yondashuv bilan Storage xarajatlari kamdan-kam oyiga $50–$100 dan oshadi.

Firebase Storage-ga fayllarni qanday yuklash mumkin

Firebase Storage-ga fayl yuklash SDK-ning tegishli metodi orqali amalga oshiriladi, u saqlashdagi yo'l va fayl ma'lumotlarini (bayt massivi, URI, oqim yoki Bitmap) qabul qiladi. SDK avtomatik ravishda ulanishni boshqaradi, katta hajmdagi faylni qismlarga ajratadi va taraqqiyotni kuzatish uchun qayta chaqiruvlarni taqdim etadi. Yuklash mijoz qurilmasidan to'g'ridan-to'g'ri Google Cloud-ga, sizning serveringizni chetlab o'tib amalga oshiriladi, bu esa o'z infratuzilmangizdagi yukni kamaytiradi.

Android uchun Firebase Storage SDK StorageReference va UploadTask klasslaridan foydalanadi. StorageReference Firebase.storage.reference orqali ildiz yo'lidan yaratiladi va baketdagi aniq faylga ishora qiladi. UploadTask taraqqiyot, pauza va tugash tinglovchilarini qaytaradi. Ulanish uzilganda UploadTask avtomatik ravishda oxirgi muvaffaqiyatli uzatilgan baytdan yuklashni davom ettiradi — bu xatti-harakat davom ettiriladigan yuklash (resumable upload) deb ataladi.

Fayl metama'lumotlari (Content-Type, maxsus maydonlar) yuklash boshlanganda alohida SettableMetadata obyekti orqali uzatiladi. Content-Type ni to'g'ri o'rnatish fayllarni brauzerda to'g'ri ko'rsatish va CDN keshlash ishi uchun juda muhimdir. Firebase Storage barcha standart MIME turlarini qo'llab-quvvatlaydi: image/jpeg, image/png, video/mp4, application/pdf va boshqalar.

Yuklashda metama'lumotlarni boshqarish

Fayl metama'lumotlari tizim maydonlarini (Content-Type, Cache-Control, Content-Disposition) va foydalanuvchi kalit-qiymat juftliklarini (customMetadata) o'z ichiga oladi. Tizim maydonlari yuklab olishda HTTP sarlavhalarini boshqaradi. Masalan, Cache-Control: public, max-age=31536000 javobni bir yilga keshlashni yoqadi, bu esa bir xil faylni qayta yuklab olishlar sonini sezilarli darajada kamaytiradi va trafikni tejaydi.

Maxsus metama'lumotlar Firestore-da alohida to'plam yaratmasdan fayl haqida qo'shimcha ma'lumotlarni uzatish uchun qulaydir. Masalan, uploadedBy maydoniga faylni yuklagan foydalanuvchining userId sini saqlash mumkin, bu esa mualliflik tarkibiga ega galereyalarni amalga oshirishni soddalashtiradi. Maxsus metama'lumotlar Security Rules tomonidan alohida himoyalanmagan — ularga kirish faylning o'zi bilan bir xil qoidalar bilan tartibga solinadi.

Ko'p faylli yuklash va paketli qayta ishlash

Bir vaqtning o'zida bir nechta fayllarni yuklash zarur bo'lganda (masalan, galereyadan fotosuratlar) cheklovlarsiz parallel ravishda mustaqil UploadTask larni ishga tushirish tavsiya etilmaydi. Mobil qurilmalarda 3–5 tadan ortiq faylni parallel yuklash tarmoq stekining haddan tashqari yuklanishiga va taym-autlarga olib keladi. Optimal strategiya — 3 raqobatbardosh limitidan foydalanish yoki umumiy taraqqiyot panelini ko'rsatish bilan ketma-ket yuklash.

Yuklashdan keyin server tomonida qayta ishlash uchun (thumbnail yaratish, siqish, tarkib moderatsiyasi) Firebase Cloud Functions triggeridan foydalaning: functions.storage.object().onFinalize(). Bu funksiya har bir fayl yuklanishi tugagach avtomatik chaqiriladi va qayta ishlangan nusxani boshqa yo'l bilan saqlashi mumkin. Bu haqda batafsil — odatiy stsenariylar bo'limida.

Fayllarni yuklab olish va havolalarni boshqarish

Firebase Storage yuklab olishning ikki usulini qo'llab-quvvatlaydi: SDK orqali to'g'ridan-to'g'ri yuklab olish (bayt massivi yoki mahalliy fayl olish) va HTTP orqali kirish uchun to'g'ridan-to'g'ri download URL olish. To'g'ridan-to'g'ri URL ImageView, WebView da tasvirlarni ko'rsatish yoki foydalanuvchiga havola berish uchun ishlatilishi mumkin. Download URL Firebase konsolida bekor qilinishi mumkin bo'lgan xavfsizlik tokeni bilan yaratiladi.

storageReference.downloadUrl metodi https://firebasestorage.googleapis.com/v0/b/{bucket}/o/{path}?alt=media&token={token} ko'rinishidagi URL ni qaytaradi. Xavfsizlik tokeni avtomatik ravishda yaratishda URL ga kiritiladi, shuning uchun havolani ruxsatsiz kirish xavfisiz uchinchi shaxslarga (masalan, messenjerda) uzatish mumkin. Biroq, agar token buzilgan bo'lsa, uni Firebase konsolining Storage bo'limida bekor qilish mumkin — shundan so'ng ushbu token bilan barcha havolalar ishlamay qoladi.

Mijozda yuklab olingan fayllarni keshlash uchun mahalliy ombor va ETag yoki MD5 xesh mexanizmidan foydalaning. Firebase Storage fayl so'rovida HTTP ETag sarlavhasini qaytaradi, uni mahalliy saqlangan qiymat bilan solishtirish va o'zgarmagan fayllarni qayta yuklab olishning oldini olish mumkin. Bu, ayniqsa, media tarkib uchun foydali: avatarlar, muqovalar, prevyular — kamdan-kam yangilanadigan, lekin tez-tez so'raladigan fayllar.

To'g'ridan-to'g'ri download URL lar va ularning xavfsizligi

Download URL token bilan — bu autentifikatsiyadan o'tmagan foydalanuvchilarga fayllarga kirishni ta'minlashning asosiy usulidir (masalan, yangiliklar lentasida tasvirni ko'rsatish). Token bir marta yaratiladi va bekor qilinmaguncha o'zgarmaydi, shuning uchun URL ma'lumotlar bazasida saqlanishi mumkin (masalan, Firestore-dagi avatarUrl maydoni yonida). Avatar o'zgarganda eski fayl o'chiriladi va yangi URL yaratiladi va saqlanadi.

Esda tutish muhim: download URL mavjudligi Security Rules ni bekor qilmaydi. Agar qoida faylni o'qishni taqiqlasa, downloadUrl metodi Permission Denied xatosini qaytaradi. Bu shuni anglatadiki, faylga to'g'ri yo'lni bilsa ham, autentifikatsiyadan o'tmagan mijoz havolani ololmaydi. URL olingandan so'ng faylga kirish HTTP orqali, Security Rules ni chetlab o'tib amalga oshiriladi — shuning uchun token download havolasining yagona himoyasidir.

Keshlash va ETag bilan ishlash

HTTP ETag — bu har bir tarkib o'zgarishida o'zgaradigan fayl versiyasining identifikatoridir. Firebase Storage GET so'roviga javobda avtomatik ravishda ETag ni qaytaradi. Mijoz ilovasi ETag ni mahalliy keshlarda saqlashi va qayta so'rovda If-None-Match: {etag} sarlavhasini yuborishi mumkin. Agar fayl o'zgarmagan bo'lsa, server ma'lumotlarni uzatmasdan 304 Not Modified statusini qaytaradi.

Mobil ilovada intellektual keshlash ni amalga oshirish uchun mahalliy fayl tizimi va ma'lumotlar bazasi (masalan, yo'l-ETag juftliklarini saqlash uchun Room) kombinatsiyasidan foydalaning. Faylni yuklab olishda bazadan ETag ni tekshiring: agar u serverdagiga mos kelsa, mahalliy nusxadan foydalaning. Bunday yondashuv statik media fayllar uchun trafikni 60–80% ga kamaytiradi va galereyali ekranlarning yuklanishini tezlashtiradi.

Firebase Storage uchun xavfsizlik qoidalari

Security Rules — bu Firebase Storage-dagi fayllarga kirishni chegaralashning deklarativ tili bo'lib, Firebase server tomonida bajariladi. Har bir qoida baketdagi yo'lga bog'lanadi va o'qish (read) yoki yozish (write) operatsiyasiga ruxsat berilgan shartlarni belgilaydi. Qoidalar har bir so'rovdan oldin tekshiriladi va mijod kodi bilan chetlab o'tib bo'lmaydi. Bu ma'lumotlarni ruxsatsiz kirishdan himoya qilishning yagona chizig'idir.

Asosiy qoida — faqat autentifikatsiyadan o'tgan foydalanuvchilarga kirish: allow read, write: if request.auth != null. Bunday qoida faqat tizimga kirgan foydalanuvchilar fayllarni o'qishi va yozishi mumkinligini kafolatlaydi. Aniqroq sozlash uchun joriy foydalanuvchining identifikatorini o'z ichiga olgan request.auth.uid o'zgaruvchisidan foydalaniladi. Uid ni fayl yo'lining bir qismi bilan solishtirib, har bir foydalanuvchi uchun izolyatsiyalangan ombor yaratish mumkin.

Muhim: Security Rules tarkibni tekshirish mexanizmi emas. Agar fayl turini, uning hajmini yoki zararli kod mavjudligini tekshirish kerak bo'lsa, yuklanayotgan faylning metama'lumotlarini o'z ichiga olgan request.resource qoidasidan foydalaning. request.resource.size (fayl hajmi), request.resource.contentType (MIME turi) va request.resource.md5Hash (nazorat summasi) xususiyatlari mavjud. Biroq, tarkibni to'liq tekshirish Cloud Functions orqali server tomonida amalga oshiriladi.

StsenariySecurity Rules qoidasi
Faqat autentifikatsiyadan o'tganlarallow read, write: if request.auth != null
Faqat egasiallow write: if request.auth.uid == userId
Ommaviy o'qishallow read: if true; allow write: if request.auth != null
Hajm bo'yicha cheklashallow write: if request.resource.size < 5 * 1024 * 1024
Tur bo'yicha cheklashallow write: if request.resource.contentType.startsWith('image/')

Foydalanuvchi tarkibi uchun qoidalar namunasi

Oddiy konfiguratsiya foydalanuvchi avatarlari va galereyasi bo'lgan ilova uchun quyidagicha ko'rinadi. Foydalanuvchi faqat o'zining /users/{userId}/ katalogiga yozishi mumkin, lekin ushbu katalogdagi istalgan faylni o'qishi mumkin (galereya ochiq). Fayl hajmi 5 MB bilan cheklangan, turi esa — faqat tasvirlar. Qoidalarning bunday kombinatsiyasi Firebase Storage-dan ijtimoiy va UGC ilovalarida foydalanish stsenariylarining 80% ini qamrab oladi.

Xavfsizlik bo'yicha maslahat: butun baket uchun allow read, write: if true qoidasidan hech qachon foydalanmang. Bu sizning projectId ingizni bilgan har bir kishiga yozish imkoniyatini ochadi. 2025 yilda himoyalanmagan Firebase baketlariga hujumlar ko'paydi, bunda zararkunandalar noqonuniy tarkibni saqlash uchun ochiq kirishdan foydalanganlar. Har doim minimal zarur ruxsatlar bilan boshlang va faqat aniq zarurat bo'lganda kengaytiring.

Cloud Functions orqali tarkibni tekshirish

Cloud Functions triggeri functions.storage.object().onFinalize() yuklashdan keyin tarkibni tekshirish imkonini beradi. Agar fayl tekshiruvdan o'tmasa (masalan, virusni o'z ichiga olsa yoki platforma qoidalarini buzsa), funksiya uni o'chirishi va foydalanuvchiga xabar berishi mumkin. Bu haqiqiy tarkibni tekshirishning yagona usuli, chunki Security Rules faqat metama'lumotlarni (hajm va MIME turini) ko'radi, ikkilik ma'lumotlarni emas.

Tekshirish namunasi: Node.js dagi funksiya yuklangan faylni vaqtinchalik katalogga yuklab oladi, uni antivirus detektori (masalan, ClamAV) orqali o'tkazadi va agar tahdid aniqlansa — faylni o'chiradi va Firebase Crashlytics ga hodisani yozadi. Funksiyaning bajarilish vaqti 540 soniya bilan cheklangan, bu 50 MB gacha bo'lgan fayllarni tekshirish uchun yetarli.

Kotlin-da Firebase Storage uchun kod misollari

Kotlin da Android ilovasida Firebase Storage integratsiyasining amaliy misollarini ko'rib chiqamiz. Kod Firebase SDK ning standart klasslaridan foydalanadi va qurilma galereyasidan tasvirni yuklash, taraqqiyotni kuzatish bilan faylni yuklab olish va download URL olishni namoyish etadi. Barcha misollar xatolarni qayta ishlash va ulanish yo'qotilganda vazifalarni to'xtatib turishni hisobga olgan holda bajarilgan.

Koddan foydalanishdan oldin build.gradle fayliga implementation(platform("com.google.firebase:firebase-bom:33.0.0")) va implementation("com.google.firebase:firebase-storage") bog'liqligi qo'shilganligiga ishonch hosil qiling. Firebase BOM barcha SDK larning mos versiyalarini avtomatik tanlaydi, bu esa versiya mojarolarini istisno qiladi.

Galereyadan tasvirni yuklash

Birinchi misol — foydalanuvchi Intent ACTION_GET_CONTENT orqali tanlagan faylni yuklash. Olingan faylning Uri si Firebase Storage SDK ga uzatiladi, u mustaqil ravishda ushbu Uri bo'yicha ma'lumotlarni o'qiydi. putFile metodi Uri ni qabul qiladi va UploadTask — taraqqiyotni kuzatish, to'xtatish va davom ettirish mumkin bo'lgan obyektni qaytaradi.

kotlin
val storageRef = Firebase.storage.reference
val imageRef = storageRef.child(
    "users/${auth.uid}/profile.jpg"
)

val metadata = SettableMetadata().apply {
    contentType = "image/jpeg"
    customMetadata = mapOf(
        "uploadedBy" to auth.uid!!
    )
}

imageRef.putFile(imageUri, metadata)
    .addOnSuccessListener {
        Log.d("Storage", "Fayl yuklandi")
    }
    .addOnFailureListener { e ->
        Log.e("Storage", "Xato: ${e.message}")
    }

Yuqoridagi misolda storageRef o'zgaruvchisi — bu loyiha baketining ildiz referensiyasidir. child metodi yo'l satrini qabul qiladi va aniq faylga ishora qiluvchi StorageReference ni qaytaradi. Agar ko'rsatilgan yo'lda fayl allaqachon mavjud bo'lsa, u qayta yoziladi. contentType va customMetadata metama'lumotlari putFile so'roviga biriktirilgan SettableMetadata obyekti orqali uzatiladi.

Taraqqiyot bilan faylni yuklab olish

Ikkinchi misol ImageView da ko'rsatish uchun bayt massivini olish bilan faylni yuklab olishni namoyish etadi. getBytes() metodi butun faylni xotiraga yuklaydi. 10 MB dan katta fayllar uchun getFile() dan foydalaning — u tarkibni to'g'ridan-to'g'ri mahalliy faylga saqlaydi, bu esa OutOfMemoryError ning oldini oladi.

kotlin
val islandRef = storageRef.child("images/island.jpg")

val ONE_MEGABYTE: Long = 1024 * 1024
islandRef.getBytes(ONE_MEGABYTE)
    .addOnSuccessListener { bytes ->
        imageView.setImageBitmap(
            BitmapFactory.decodeByteArray(
                bytes, 0, bytes.size
            )
        )
    }
    .addOnFailureListener { e ->
        Log.e("Storage", "Yuklab bo'lmadi: ${e.message}")
    }

Download URL olish uchun (masalan, Firestore ga havolani saqlash uchun) downloadUrl metodi ishlatiladi:

kotlin
islandRef.downloadUrl.addOnSuccessListener { uri ->
    Log.d("Storage", "Download URL: $uri")
    // uri.toString() ni Firestore'ga saqlash
}

Maslahat: downloadUrl bir marta yaratiladi va bekor qilinmaguncha barqaror. Uni birinchi yuklashda ma'lumotlar bazasida saqlang, faylni ko'rsatishda har safar so'ramang. Bu Firebase Storage ga so'rovlar sonini kamaytiradi va UI ishini tezlashtiradi.

Firebase Storage dan foydalanishning odatiy stsenariylari

Firebase Storage mobil ilovalarda barcha foydalanuvchi va tizim fayllarini saqlash uchun qo'llaniladi. Eng keng tarqalgan stsenariylar — avatarlar va profil fotosuratlari, tarkib lentasidagi tasvirlar, video va audio fayllar, foydalanuvchilar o'rtasida almashish uchun hujjatlar (PDF, DOCX), shuningdek kichik hajmdagi ma'lumotlarning zaxira nusxasi. Bu holatlarning barchasida Storage metama'lumotlar va havolalarni saqlash uchun Firestore bilan birgalikda ixtisoslashtirilgan fayl ombori sifatida ishlaydi.

Ijtimoiy ilovalar — eng keng tarqalgan holat. Har bir foydalanuvchi avatar, post fotosuratlari va media fayllarni yuklaydi. /users/{uid}/posts/{postId}/image.jpg yo'l tuzilmasi ma'lumotlarni ajratish imkonini beradi va Security Rules ni soddalashtiradi. Foydalanuvchi o'chirilganda Cloud Function foydalanuvchining barcha kataloglarini o'tib, omborni tozalashi mumkin. Firebase blogi (2025) ma'lumotlariga ko'ra, bu andozadan Firebase-dagi 70% production loyihalarida foydalaniladi.

E-commerce ilovalari mahsulot fotosuratlari, kataloglar va ko'rsatmalar bilan PDF fayllarni saqlash uchun Firebase Storage dan foydalanadi. Bu holda fayllarga kirish odatda ochiq (autentifikatsiyasiz o'qish), yozish esa — faqat administratorlar uchun Cloud Functions orqali huquqlarni tekshirish bilan. Mahsulotlarning download URL i Firestore da mahsulotning qolgan ma'lumotlari yonida saqlanadi, bu esa Storage ga qo'shimcha so'rovlarsiz tasvirlarni ko'rsatish imkonini beradi.

Messengerlar va chatlar Firebase Storage da dialoglarda yuborilgan tasvirlar va ovozli xabarlarni saqlaydi. Yo'l /chats/{chatId}/messages/{messageId}.jpg ko'rinishida quriladi. O'qishga kirish — faqat chat ishtirokchilariga, bu Security Rules orqali Firestore ma'lumotlaridan foydalanib tekshiriladi. Bu boshqa Firebase xizmatidan ma'lumotlarni o'qiyotgan qoidaning kam sonli stsenariylaridan biridir: allow read: if firestore.exists(/databases/(default)/documents/chats/{chatId}/members/{request.auth.uid}).

Tez-tez beriladigan savollar

Firebase Storage Google Cloud Storage dan qanday farq qiladi?

Firebase Storage — bu Firebase Authentication va Security Rules bilan integratsiyalangan Google Cloud Storage ustidagi qo'shimcha qatlamdir. Dasturchi IAM rollari va xizmat hisoblarini sozlashi shart emas. Google Cloud Storage kengroq imkoniyatlarni taqdim etadi (Pub/Sub bildirishnomalari, Object Lifecycle Management), lekin GCP IAM orqali qo'lda kirishni boshqarishni talab qiladi.

Yuklanadigan fayl hajmini qanday cheklash mumkin?

Hajm cheklovi Security Rules da request.resource.size orqali o'rnatiladi. Misol: allow write: if request.resource.size <= 5 * 1024 * 1024 fayllarni 5 MB gacha cheklaydi. Qo'shimcha ravishda, aniq ruxsat etilmaydigan fayl bilan foydalanuvchi trafigini isrof qilmaslik uchun jo'natishdan oldin mijoz tomonida tekshirishingiz mumkin.

Firebase Storage SDK orqali faylni o'chirish mumkinmi?

Ha, o'chirish uchun StorageReference obyektining delete() metodidan foydalaniladi: storageRef.child("path").delete(). O'chirish operatsiyasi qaytarib bo'lmaydigan va faylni baketdan darhol o'chiradi. Faylni faqat Security Rules ushbu yo'l uchun write ga ruxsat bersagina o'chirish mumkin. O'chirishdan keyin download URL ishlamay qoladi.

Omborni faqat o'qish uchun qanday qilish mumkin?

Security Rules da read ni hamma uchun (yoki autentifikatsiyadan o'tganlar uchun) ruxsat bering va write ni taqiqlang: allow read: if request.auth != null; allow write: if false. Bunday rejimda yozish faqat Firebase Admin SDK xizmat hisobi orqali mumkin — masalan, ma'muriy huquqlarga ega Cloud Functions dan. Bu mahsulot kataloglari va ommaviy tarkib uchun standart andozadir.

Firebase Storage yuklashda ulanish uzilishini qanday qayta ishlaydi?

UploadTask segmentlash bilan HTTP PUT ga asoslangan resumable upload protokolidan foydalanadi. Uzilishda yuklash oxirgi tasdiqlangan baytdan davom etadi, boshidan emas. Ushbu xatti-harakatni yoqish uchun qo'shimcha sozlamalar talab qilinmaydi — SDK buni fayl hajmi 1 MB dan katta bo'lganda avtomatik qiladi.

Xulosa

  • Firebase Storage — Google Cloud Storage asosida Firebase Authentication va Security Rules bilan integratsiyalangan bulutli obyekt ombori.
  • Fayllarni yuklash mijozdan to'g'ridan-to'g'ri SDK orqali ulanish uzilishlarida resumable upload qo'llab-quvvatlashi bilan amalga oshiriladi.
  • Yuklab olish SDK orqali (bayt massivi yoki mahalliy fayl) yoki xavfsizlik tokeni bilan to'g'ridan-to'g'ri download URL lar orqali mumkin.
  • Security Rules — yo'l, autentifikatsiya, hajm va fayl turi bo'yicha kirishni chegaralash imkonini beruvchi yagona ma'lumotlarni himoya qilish mexanizmi.
  • HTTP ETag orqali keshlash mijozda to'g'ri amalga oshirilganda statik media fayllar uchun trafikni 60–80% ga kamaytiradi.
  • Cloud Functions onFinalize triggeri fayllarni keyingi qayta ishlash imkonini beradi: siqish, moderatsiya, prevyu yaratish.
  • Narx belgilash bashorat qilish mumkin: 5 GB bepul limit prototiplarni qamrab oladi, Blaze pullik tarif haqiqiy foydalanish bo'yicha to'lanadi.

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing