# Build Azure Blob Storage Workflows in TypeScript

Azure Blob Storage code requires careful authentication, transfer, and permission choices. This skill provides focused TypeScript and JavaScript patterns for common SDK workflows.

## Install

```bash
npx skillstore add sickn33/azure-storage-blob-ts
```

## Metadata

- Status: approved
- Slug: sickn33-azure-storage-blob-ts
- Skillstore revision: r2
- Version status: missing
- Tree hash: efe25d34799750ed6f8fbfe35fbe2c1f9e26ec9bf5beb0a5c3c3ec3f84e405b4
- Author: sickn33
- GitHub username: sickn33
- License: MIT
- Repository: https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/azure-storage-blob-ts
- Ref: f9e2c34b4f19c7f3e6b0a1e93227b5f77cc12526
- Supported tools: Claude, Codex, Claude Code
- Audit status: complete
- Agent install advisory: allowed
- Manual install advisory: allowed
- Artifact signature: available
- Audit attestation: unavailable
- Human verification: not\_verified
- Risk factors: external\_commands, network, filesystem, env\_access
- Quality score: 70
- Public page: https://skillstore.pages.dev/skills/sickn33-azure-storage-blob-ts
- Manifest: https://skillstore.pages.dev/api/skills/sickn33-azure-storage-blob-ts/manifest

## Capabilities

- Configure BlobServiceClient with DefaultAzureCredential, connection strings, shared keys, or SAS tokens.
- Create, list, and delete containers using Azure Storage client methods.
- Upload and download blobs from strings, buffers, files, streams, and browser data.
- List, copy, delete, and inspect blobs, properties, metadata, and HTTP headers.
- Generate blob, container, and account SAS tokens with configurable permissions and expiry.
- Handle block, append, and page blobs with TypeScript SDK examples.

## Use Cases

- Build a backend storage service: Implement authenticated blob uploads, downloads, listing, metadata updates, and error handling in a Node.js service.
- Prepare secure browser uploads: Design browser uploads with short-lived SAS access and uploadData without exposing storage account keys.
- Automate storage maintenance: Create maintenance utilities for containers, blob copies, file transfers, and narrowly scoped SAS generation.

## Prompt Templates

### Connect with managed identity

```
Create a minimal TypeScript example that connects to [ACCOUNT_NAME] with DefaultAzureCredential and lists containers. Include required packages and basic error handling.
```

### Build a file transfer flow

```
Create a Node.js TypeScript service that uploads [LOCAL_PATH] to [CONTAINER]/[BLOB_NAME] and downloads it to [DESTINATION]. Stream large files and report progress.
```

### Design a browser upload

```
Design a browser upload flow for [FILE_TYPE] using a server-issued, short-lived SAS token. Restrict permissions and validate size, type, and destination.
```

### Harden a storage pipeline

```
Review my Azure Blob workflow for concurrency, retries, idempotency, conditional writes, observability, and least privilege. Propose production changes and tests.
```

## Limitations

- Provides guidance and examples; it does not execute Azure operations or verify credentials.
- Requires Node.js 18 or newer for the documented SDK version and Node-specific methods.
- Browser support excludes shared-key authentication, file streams, direct file downloads, and SAS generation.
- Examples use placeholder resources and require permission, security, and error-handling review before production use.

## Best Practices

- Prefer DefaultAzureCredential and managed identities instead of connection strings or account keys.
- Grant only required SAS permissions, use short expirations, and keep tokens out of logs.
- Stream large files, report progress, and handle retries and service errors explicitly.

## Anti Patterns

- Do not embed account keys, connection strings, or SAS tokens in source code.
- Do not issue broad, long-lived SAS tokens when a narrow token satisfies the operation.
- Do not buffer very large blobs when streaming methods are available.

## Security Audit

- Audited at: 2026-07-23T23:23:24.44\+00:00
- Summary: All 102 static findings are false positives caused by Markdown, TypeScript templates, expected Azure endpoints, named environment variables, and a placeholder file stream. One medium issue remains because the container and account SAS examples grant broad permissions for 24 hours.

## Stats

- Views: 104
- Downloads: 12
- Favorites: 0
- Popularity score: 0
