Blob — katta yoki strukturasi ma’lumotlar bazasi tomonidan tahlil qilinmaydigan binary ma’lumotni ifodalovchi tushuncha. To‘liq nomi Binary Large Object. Rasm, video, audio, PDF, arxiv, executable va boshqa fayllar blob sifatida saqlanishi mumkin.
“Blob” atamasi database, cloud storage, browser API va dasturlash kutubxonalarida turli, ammo bir-biriga yaqin ma’noda ishlatiladi.
Binary ma’lumot
Blob odatda byte’lar ketma-ketligi sifatida ko‘riladi.
Saqlash tizimi uning ichki formatini bilishi shart emas.
Masalan, PNG va ZIP ikkalasi ham byte’lardan iborat, lekin application content type va parser orqali ularning ma’nosini tushunadi.
Database BLOB
Relational database’da BLOB column katta binary qiymatni saqlaydi.
Misollar:
- profil rasmi;
- scanned hujjat;
- digital signature;
- kichik attachment;
- binary konfiguratsiya.
Database transaction va access controlidan foydalanish mumkin.
Biroq juda katta fayllar database backup va replicationni og‘irlashtiradi.
Object storage blob
Cloud storage platformalarida “blob” ko‘pincha object bilan bir ma’noga yaqin.
Blob container ichida nom, content va metadata bilan saqlanadi.
HTTP API orqali upload va download qilinadi.
Katta media va backup uchun database BLOB’dan ko‘ra qulayroq bo‘lishi mumkin.
Browser Blob
Web API’da Blob immutable byte ma’lumot obyektini ifodalaydi.
U:
uchun ishlatiladi.
File odatda Blob’ning nom va vaqt kabi qo‘shimcha metadata’ga ega ko‘rinishidir.
MIME type
Blob ko‘pincha content type bilan birga keladi:
image/png
application/pdf
application/octet-stream
MIME type browser yoki clientga ma’lumotni qanday talqin qilishni bildiradi.
Faqat file extensionga ishonish xavfli.
Real format signature va parser bilan tekshiriladi.
Hajm
Blob bir necha byte’dan gigabyte yoki undan katta bo‘lishi mumkin.
Tizim maksimal hajmni belgilaydi.
Katta blobni to‘liq RAMga yuklash memory muammosi yaratadi.
Streaming va chunked transfer ishlatiladi.
Streaming
Blob qismlarga bo‘lib o‘qiladi yoki yoziladi.
Bu:
- memory sarfini kamaytiradi;
- katta fayl bilan ishlaydi;
- upload progress beradi;
- pipeline processingga imkon beradi.
Consumer backpressure’ni hisobga oladi.
Chunk
Katta blob bir nechta chunkga ajratilishi mumkin.
Har chunk alohida yuboriladi va serverda birlashtiriladi.
Chunk:
ga ega bo‘lishi mumkin.
Duplicate va missing chunk tekshiriladi.
Content-addressed storage
Blob nomi uning cryptographic hashiga bog‘lanishi mumkin.
Masalan:
sha256(content)
Bir xil content bitta marta saqlanadi.
Integrity tekshirish va deduplication osonlashadi.
Hash collision nazariy xavfi kuchli algoritm bilan juda kamayadi.
Deduplication
Ayni blob bir nechta user yoki recordga tegishli bo‘lsa storage uni bitta physical nusxada saqlashi mumkin.
Reference count yoki manifestlar qaysi obyektlar blobga bog‘langanini ko‘rsatadi.
Bitta reference o‘chirilganda blob darhol o‘chirilmaydi.
Garbage collection orphan bloblarni topadi.
Metadata
Blobning o‘zi structure’siz bo‘lsa ham tashqi metadata muhim:
Metadata database’da, blob esa object storage’da saqlanishi mumkin.
Upload validation
User yuklagan blob untrusted hisoblanadi.
Tekshiruvlar:
- maksimal hajm;
- content signature;
- MIME;
- extension;
- malware scan;
- archive depth;
- image decode;
- filename sanitization.
Upload qilindi degani uni darhol public berish mumkin degani emas.
Virus scan
Blob quarantine holatida saqlanadi.
Background scanner tekshiradi.
Natija:
- clean;
- infected;
- scan failed;
- unsupported;
- pending.
Scan tugamaguncha download cheklanadi.
Scannerning o‘zi parser zaifliklariga qarshi izolyatsiya qilinadi.
Download
Server blobni stream qiladi yoki signed URL beradi.
Headerlar:
Untrusted HTML inline ochilsa XSS xavfi bo‘lishi mumkin.
Attachment disposition ishlatilishi mumkin.
Range request
Video va katta fayl uchun client blobning ma’lum byte oralig‘ini so‘raydi.
Server Range requestni qo‘llaydi.
Bu seek, resume va partial downloadga yordam beradi.
Compressed yoki encrypted format random accessni cheklashi mumkin.
Immutability
Ko‘p blob storage’da blob immutable deb qaraladi.
O‘zgartirish uchun yangi blob yaratiladi va reference yangilanadi.
Bu cache va versioningni soddalashtiradi.
Mutable key bo‘lsa concurrency va stale cache muammosi paydo bo‘ladi.
Database yoki object storage
Database BLOB:
Ko‘p tizim metadata’ni database’da, binary contentni object storage’da saqlaydi.
Backup
Blob va metadata birgalikda tiklanishi kerak.
Faqat database backup qilinsa objectlar yetishmasligi mumkin.
Faqat bucket nusxasi bo‘lsa record bilan bog‘lanish yo‘qoladi.
Point-in-time consistency va version mapping saqlanadi.
Garbage collection
Application metadata recordini o‘chirganida blob storage’dagi binary obyekt orphan bo‘lib qolishi mumkin. Periodic job reference mavjudligini tekshiradi va retention muddatidan keyin foydalanilmaydigan bloblarni o‘chiradi. Darhol o‘chirish rollback va delayed transactionlar bilan conflict yaratishi mumkin.
Transaction chegarasi
Database record va object storage blob bitta atomic transactionda yozilmasligi mumkin. Avval temporary blob upload qilinib, keyin metadata commit qilinadi. Failure holatlari reconciliation job orqali tozalanadi.
Bog‘liq tushunchalar
Binary Large Object, Blob, Object storage, BLOB column, Binary data, MIME type, Streaming, Chunked upload, Content-addressed storage, Deduplication, File storage