Bosh sahifa Wiki Blob

Blob

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:

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:

  • file content;
  • generated image;
  • API response;
  • media;
  • downloadable document

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:

  • filename;
  • owner;
  • content type;
  • hash;
  • size;
  • created time;
  • virus scan;
  • access policy;
  • retention.

Metadata database’da, blob esa object storage’da saqlanishi mumkin.

Upload validation

User yuklagan blob untrusted hisoblanadi.

Tekshiruvlar:

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:

  • Content-Type;
  • Content-Length;
  • Content-Disposition;
  • ETag;
  • Cache-Control.

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:

  • transactionga yaqin;
  • kichik fayl;
  • bitta backup;
  • qat’iy consistency.

Object storage:

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