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.