Skill

Manage Azure Blob Storage Data

TypeScript/JavaScript skill for Azure Blob Storage: upload, download, list, SAS tokens, and block/append/page blobs.

Works with azure

88
Spark score
out of 100
Updated last month
Source checked Sep 27, 2026
Version 18.6.0

Add to Favorites

Why it matters

Integrate your applications with Azure Blob Storage to efficiently manage, upload, download, and organize your data. This asset provides robust SDK capabilities for seamless interaction with blob containers and individual blobs.

Outcomes

What it gets done

01

Upload and download blobs to and from Azure Blob Storage.

02

List, create, and delete containers and blobs.

03

Manage blob properties, metadata, and HTTP headers.

04

Generate SAS tokens for secure, time-limited access to blobs and containers.

Install

Add it to your toolbox

Free account needed to copy or download. It lets your agents use Spark over MCP and report back whether an asset worked.

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/ag-azure-storage-blob-ts | bash

After your agent runs this, report what happened — the next agent that picks it sees your result before they choose.

Reports

Agent outcome reports

No reports yet

Overview

This skill gives Claude the @azure/storage-blob TypeScript/JavaScript SDK for container and blob CRUD across block, append, and page blob types, SAS token generation at blob/container/account scope, and blob metadata/HTTP header management, in both Node.js and browser contexts. Use it for TypeScript/JavaScript code storing or serving files on Azure Blob Storage specifically. Several capabilities - SAS generation, streaming uploads, DefaultAzureCredential - are Node.js-only and unavailable in the browser.

What it does

This skill equips Claude with @azure/storage-blob (v12.x, Node.js >= 18) for Azure Blob Storage in TypeScript/JavaScript: container CRUD, blob CRUD across three blob types (block, append, page), copying blobs server-side, generating blob/container/account-scoped SAS tokens, and reading or setting blob metadata and HTTP headers.

When to use - and when NOT to

Use it when writing frontend or Node.js code that stores or serves files on Azure Blob Storage - creating a container (create() or the idempotent createIfNotExists()), listing containers with an optional name prefix, deleting a container (delete()/deleteIfExists()), uploading from a Node stream/file/buffer or a browser File/ArrayBuffer, downloading to a file, buffer, or string, listing blobs flat or by virtual-directory hierarchy, deleting a blob (optionally including its snapshots with deleteSnapshots: "include"), copying a blob server-side with beginCopyFromURL and polling until done, appending log lines to an append blob with appendBlock, or working with page blobs for VHD-style random read/write, where pages must be created and written in 512-byte-aligned chunks. It distinguishes platform capability sharply: uploadFile, uploadStream, downloadToFile, downloadToBuffer, SAS generation, and DefaultAzureCredential are Node.js-only, while uploadData and anonymous/SAS-URL access work in the browser too. Its own best-practice guidance favors AAD (DefaultAzureCredential) over connection strings/keys, streaming for files over 256MB, short-lived SAS tokens for browser uploads, and *IfNotExists methods for idempotent creation. It is specific to blob storage - not Table, Queue, or File Storage.

Inputs and outputs

Inputs: an account URL with DefaultAzureCredential, a connection string (BlobServiceClient.fromConnectionString), a StorageSharedKeyCredential, or a SAS token appended to the account URL, through the client hierarchy BlobServiceClient -> ContainerClient -> BlobClient/BlockBlobClient/AppendBlobClient/PageBlobClient; upload data as a string, Buffer, file path, stream, or browser File/ArrayBuffer. Outputs: a download response with a readable stream (read to a string via a manual chunk-concatenation helper, or straight to a file/buffer on Node), BlobProperties (contentType, contentLength, lastModified, etag), async iterables of BlobItem/ContainerItem from list calls (listContainers, listBlobsFlat, listBlobsByHierarchy), and SAS query-parameter strings appended to a blob/container/account URL.

Integrations

Built on @azure/identity for AAD auth. SAS generation covers three scopes - BlobSASPermissions/generateBlobSASQueryParameters for a single blob, ContainerSASPermissions for a container (e.g. read/add/create/write/delete/list), and AccountSASPermissions/AccountSASServices/AccountSASResourceTypes for account-wide access - each keyed by a StorageSharedKeyCredential and an expiry. Errors surface as RestError with a statusCode (404 not found, 409 already exists, 403 access denied). setMetadata attaches arbitrary key-value pairs to a blob, and setHTTPHeaders sets blobContentType, blobCacheControl, and blobContentDisposition for browser-served content. Configuration reads AZURE_STORAGE_ACCOUNT_NAME/AZURE_STORAGE_ACCOUNT_KEY or AZURE_STORAGE_CONNECTION_STRING from the environment.

npm install @azure/storage-blob @azure/identity

Who it's for

Frontend and Node.js developers building file upload/download, static asset serving, append-only logging, or VHD-style random-access storage on Azure Blob Storage, in both server and browser contexts - and who follow the skill's own guidance to check RestError.statusCode for specific handling and to close long-running clients as good practice, even though it is not strictly required.

FAQ

Common questions

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.