intermediate

Blob Storage

Object storage: containers, access tiers, SAS tokens, lifecycle policy, CDN и учёт бэкапов.

Azure Blob Storage хранит неструктурированные объекты в containers с тарифными уровнями (Hot, Cool, Archive), опциональной immutability и CDN для статической раздачи. Доступ — через Azure RBAC, shared access signatures (SAS) или managed identity из App Service, Functions и AKS.

| Уровень | Типичное применение | |---------|---------------------| | Hot | Частые чтение и запись | | Cool | Редкий доступ при более низкой цене хранения | | Archive | Крайне редкая выборка; есть latency rehydration |

					const { BlobServiceClient } = require('@azure/storage-blob');
const client = BlobServiceClient.fromConnectionString(process.env.AZURE_STORAGE);
await client.getContainerClient('uploads').getBlockBlobClient(key).upload(data, data.length);
				

На интервью: blob vs Azure Files vs disk; scope и срок SAS; lifecycle rules для старых assets; прямая загрузка из браузера через user-delegation SAS; consistency listing после upload.

Типовые ошибки: публичные containers по ошибке; долгоживущие SAS во frontend; большие файлы через app tier вместо signed URL; нет lifecycle policy для log/backup buckets.

Компромисс — дешёвое durable storage и CDN-friendly статика против eventual consistency listing, стоимости egress и необходимости продумывать auth загрузок.

Чеклист:

  • Containers по умолчанию private с least-privilege RBAC.
  • Короткоживущие SAS или user-delegation для upload.
  • Lifecycle rules для логов, бэкапов и временных файлов.
  • CDN и cache headers для статики.
  • Мониторинг ёмкости, транзакций и расходов на egress.