Skip to main content Início Criadores microsoft Skills azure-storage-file-share-ts
azure-storage-file-share-ts Azure File Share JavaScript/TypeScript SDK (@azure/storage-file-share) for SMB file share operations. Use for creating shares, managing directories, uploading/downloading files, and handling file metadata. Supports Azure Files SMB protocol scenarios. Triggers: "file share", "@azure/storage-file-share", "ShareServiceClient", "ShareClient", "SMB", "Azure Files".
Ir para a instalação Skills Marketplace Descubra e explore skills de IA criadas pela comunidade.
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Copiar promptMostrar detalhes do prompt Um comando direto ignora o prompt de revisão. Verifique a origem antes de executá-lo.
npx skills add https://github.com/microsoft/skills --skill azure-storage-file-share-tsO comando permanece em uma só linha. Role horizontalmente para revisá-lo antes de copiar.
Prefere uma cópia local? Baixe os arquivos disponíveis atualmente no SkillsMP.
Baixar Zip Baixando... Build, deploy, evaluate, optimize, fine-tune, and manage Microsoft Foundry agents, models, and resources end to end with azd. USE FOR: azd ai agent, azd provision/deploy, hosted agent scaffold/develop/run/deploy, prompt agent create, create agent, update agent, add tool to agent, invoke agent, agent.yaml, evaluate agent, batch eval, continuous eval, continuous monitoring, agent CI/CD, optimize prompt, improve prompt, prompt optimizer, optimize agent instructions, Agent Optimizer scaffold, dataset curation from traces, deploy model, model fine-tuning (SFT/DPO/RFT), Foundry project, RBAC, role assignment, permissions, quota, capacity, region, troubleshoot agent, deployment failure, AI Services, create Foundry resource, knowledge index, customize deployment, onboard, availability, training-data, grader, distillation, fine-tuned model, large file upload. DO NOT USE FOR: Azure Functions, App Service, general Azure deploy (use azure-deploy), general Azure prep (use azure-prepare).
azure-enterprise-infra-planner Architect and provision enterprise Azure infrastructure from workload descriptions. For cloud architects and platform engineers planning networking, identity, security, compliance, and multi-resource topologies with WAF alignment. Generates Bicep or Terraform directly (no azd). WHEN: 'plan Azure infrastructure', 'architect Azure landing zone', 'design hub-spoke network', 'plan multi-region DR topology', 'set up VNets firewalls and private endpoints', 'subscription-scope Bicep deployment', 'Azure Backup for VM workloads'. PREFER azure-prepare FOR app-centric workflows.
Assess whether source code is ready to deploy to Azure — the check BEFORE infrastructure work. Evaluates build health, app completeness, dependencies and local services, stack compatibility, and deployment feasibility. Answers questions about what your app needs before it can be deployed — frameworks, dependencies, and configuration. Checks whether dependencies are compatible and identifies deployment blockers and unsupported frameworks. WHEN: "evaluate my repo", "is my app ready to deploy", "what does my app need to deploy", "what do I need before deploying", "does my app need", "can I ship this to Azure", "scan my repo for issues", "is this app deployable", "check if my app is ready for Azure", "do I need a Dockerfile", "what's blocking my deployment", "are there any blockers", "are my dependencies compatible", "does Azure support my framework", "what needs to change before deploying", "check my app configuration".
Ocupações relacionadas SOC
Baseado na classificação ocupacional SOC
name azure-storage-file-share-ts description Azure File Share JavaScript/TypeScript SDK (@azure/storage-file-share) for SMB file share operations. Use for creating shares, managing directories, uploading/downloading files, and handling file metadata. Supports Azure Files SMB protocol scenarios. Triggers: "file share", "@azure/storage-file-share", "ShareServiceClient", "ShareClient", "SMB", "Azure Files".
license MIT metadata {"author":"Microsoft","version":"1.0.0","package":"@azure/storage-file-share"}
@azure/storage-file-share (TypeScript/JavaScript)
SDK for Azure File Share operations — SMB file shares, directories, and file operations.
Installation
npm install @azure/storage-file-share @azure/identity
Current Version : 12.x
Node.js : >= 18.0.0
Environment Variables
AZURE_STORAGE_ACCOUNT_NAME=<account-name>
AZURE_STORAGE_ACCOUNT_KEY=<account-key>
AZURE_STORAGE_CONNECTION_STRING=DefaultEndpointsProtocol=https;AccountName=...
AZURE_TOKEN_CREDENTIALS=prod
Authentication
Connection String (Simplest)
import { ShareServiceClient } ;
client = . (
process. . !
);
from
"@azure/storage-file-share"
const
ShareServiceClient
fromConnectionString
env
AZURE_STORAGE_CONNECTION_STRING
StorageSharedKeyCredential (Node.js only) import { ShareServiceClient , StorageSharedKeyCredential } from "@azure/storage-file-share" ;
const accountName = process.env .AZURE_STORAGE_ACCOUNT_NAME !;
const accountKey = process.env .AZURE_STORAGE_ACCOUNT_KEY !;
const sharedKeyCredential = new StorageSharedKeyCredential (accountName, accountKey);
const client = new ShareServiceClient (
`https://${accountName} .file.core.windows.net` ,
sharedKeyCredential
);
Microsoft Entra Token Credential import { ShareServiceClient } from "@azure/storage-file-share" ;
import { DefaultAzureCredential , ManagedIdentityCredential } from "@azure/identity" ;
const credential = new DefaultAzureCredential ({requiredEnvVars : ["AZURE_TOKEN_CREDENTIALS" ]});
const accountName = process.env .AZURE_STORAGE_ACCOUNT_NAME !;
const client = new ShareServiceClient (
`https://${accountName} .file.core.windows.net` ,
credential
);
SAS Token import { ShareServiceClient } from "@azure/storage-file-share" ;
const accountName = process.env .AZURE_STORAGE_ACCOUNT_NAME !;
const sasToken = process.env .AZURE_STORAGE_SAS_TOKEN !;
const client = new ShareServiceClient (
`https://${accountName} .file.core.windows.net${sasToken} `
);
Client Hierarchy ShareServiceClient (account level)
└── ShareClient (share level)
└── ShareDirectoryClient (directory level)
└── ShareFileClient (file level)
Share Operations
Create Share const shareClient = client.getShareClient ("my-share" );
await shareClient.create ();
await shareClient.create ({ quota : 100 });
List Shares for await (const share of client.listShares ()) {
console .log (share.name , share.properties .quota );
}
for await (const share of client.listShares ({ prefix : "logs-" })) {
console .log (share.name );
}
Delete Share await shareClient.delete ();
await shareClient.deleteIfExists ();
Get Share Properties const properties = await shareClient.getProperties ();
console .log ("Quota:" , properties.quota , "GB" );
console .log ("Last Modified:" , properties.lastModified );
Set Share Quota await shareClient.setQuota (200 );
Directory Operations
Create Directory const directoryClient = shareClient.getDirectoryClient ("my-directory" );
await directoryClient.create ();
const nestedDir = shareClient.getDirectoryClient ("parent/child/grandchild" );
await nestedDir.create ();
List Directories and Files const directoryClient = shareClient.getDirectoryClient ("my-directory" );
for await (const item of directoryClient.listFilesAndDirectories ()) {
if (item.kind === "directory" ) {
console .log (`[DIR] ${item.name} ` );
} else {
console .log (`[FILE] ${item.name} (${item.properties.contentLength} bytes)` );
}
}
Delete Directory await directoryClient.delete ();
await directoryClient.deleteIfExists ();
Check if Directory Exists const exists = await directoryClient.exists ();
if (!exists) {
await directoryClient.create ();
}
File Operations
Upload File (Simple) const fileClient = shareClient
.getDirectoryClient ("my-directory" )
.getFileClient ("my-file.txt" );
const content = "Hello, World!" ;
await fileClient.create (content.length );
await fileClient.uploadRange (content, 0 , content.length );
Upload File (Node.js - from local file) import * as fs from "fs" ;
import * as path from "path" ;
const fileClient = shareClient.rootDirectoryClient .getFileClient ("uploaded.txt" );
const localFilePath = "/path/to/local/file.txt" ;
const fileSize = fs.statSync (localFilePath).size ;
await fileClient.create (fileSize);
await fileClient.uploadFile (localFilePath);
Upload File (Buffer) const buffer = Buffer .from ("Hello, Azure Files!" );
const fileClient = shareClient.rootDirectoryClient .getFileClient ("buffer-file.txt" );
await fileClient.create (buffer.length );
await fileClient.uploadRange (buffer, 0 , buffer.length );
Upload File (Stream) import * as fs from "fs" ;
const fileClient = shareClient.rootDirectoryClient .getFileClient ("streamed.txt" );
const readStream = fs.createReadStream ("/path/to/local/file.txt" );
const fileSize = fs.statSync ("/path/to/local/file.txt" ).size ;
await fileClient.create (fileSize);
await fileClient.uploadStream (readStream, fileSize, 4 * 1024 * 1024 , 4 );
Download File const fileClient = shareClient
.getDirectoryClient ("my-directory" )
.getFileClient ("my-file.txt" );
const downloadResponse = await fileClient.download ();
const chunks : Buffer [] = [];
for await (const chunk of downloadResponse.readableStreamBody !) {
chunks.push (Buffer .from (chunk));
}
const content = Buffer .concat (chunks).toString ("utf-8" );
Download to File (Node.js) const fileClient = shareClient.rootDirectoryClient .getFileClient ("my-file.txt" );
await fileClient.downloadToFile ("/path/to/local/destination.txt" );
Download to Buffer (Node.js) const fileClient = shareClient.rootDirectoryClient .getFileClient ("my-file.txt" );
const buffer = await fileClient.downloadToBuffer ();
console .log (buffer.toString ());
Delete File const fileClient = shareClient.rootDirectoryClient .getFileClient ("my-file.txt" );
await fileClient.delete ();
await fileClient.deleteIfExists ();
Copy File const sourceUrl = "https://account.file.core.windows.net/share/source.txt" ;
const destFileClient = shareClient.rootDirectoryClient .getFileClient ("destination.txt" );
const copyPoller = await destFileClient.startCopyFromURL (sourceUrl);
await copyPoller.pollUntilDone ();
File Properties & Metadata
Get File Properties const fileClient = shareClient.rootDirectoryClient .getFileClient ("my-file.txt" );
const properties = await fileClient.getProperties ();
console .log ("Content-Length:" , properties.contentLength );
console .log ("Content-Type:" , properties.contentType );
console .log ("Last Modified:" , properties.lastModified );
console .log ("ETag:" , properties.etag );
Set Metadata await fileClient.setMetadata ({
author : "John Doe" ,
category : "documents" ,
});
Set HTTP Headers await fileClient.setHttpHeaders ({
fileContentType : "text/plain" ,
fileCacheControl : "max-age=3600" ,
fileContentDisposition : "attachment; filename=download.txt" ,
});
Range Operations
Upload Range const data = Buffer .from ("partial content" );
await fileClient.uploadRange (data, 100 , data.length );
Download Range const downloadResponse = await fileClient.download (100 , 50 );
Clear Range await fileClient.clearRange (0 , 100 );
Snapshot Operations
Create Snapshot const snapshotResponse = await shareClient.createSnapshot ();
console .log ("Snapshot:" , snapshotResponse.snapshot );
Access Snapshot const snapshotShareClient = shareClient.withSnapshot (snapshotResponse.snapshot !);
const snapshotFileClient = snapshotShareClient.rootDirectoryClient .getFileClient ("file.txt" );
const content = await snapshotFileClient.downloadToBuffer ();
Delete Snapshot await shareClient.delete ({ deleteSnapshots : "include" });
SAS Token Generation (Node.js only)
Generate File SAS import {
generateFileSASQueryParameters,
FileSASPermissions ,
StorageSharedKeyCredential ,
} from "@azure/storage-file-share" ;
const sharedKeyCredential = new StorageSharedKeyCredential (accountName, accountKey);
const sasToken = generateFileSASQueryParameters (
{
shareName : "my-share" ,
filePath : "my-directory/my-file.txt" ,
permissions : FileSASPermissions .parse ("r" ),
expiresOn : new Date (Date .now () + 3600 * 1000 ),
},
sharedKeyCredential
).toString ();
const sasUrl = `https://${accountName} .file.core.windows.net/my-share/my-directory/my-file.txt?${sasToken} ` ;
Generate Share SAS import { ShareSASPermissions , generateFileSASQueryParameters } from "@azure/storage-file-share" ;
const sasToken = generateFileSASQueryParameters (
{
shareName : "my-share" ,
permissions : ShareSASPermissions .parse ("rcwdl" ),
expiresOn : new Date (Date .now () + 24 * 3600 * 1000 ),
},
sharedKeyCredential
).toString ();
Error Handling import { RestError } from "@azure/storage-file-share" ;
try {
await shareClient.create ();
} catch (error) {
if (error instanceof RestError ) {
switch (error.statusCode ) {
case 404 :
console .log ("Share not found" );
break ;
case 409 :
console .log ("Share already exists" );
break ;
case 403 :
console .log ("Access denied" );
break ;
default :
console .error (`Storage error ${error.statusCode} : ${error.message} ` );
}
}
throw error;
}
TypeScript Types Reference import {
ShareServiceClient ,
ShareClient ,
ShareDirectoryClient ,
ShareFileClient ,
StorageSharedKeyCredential ,
AnonymousCredential ,
FileSASPermissions ,
ShareSASPermissions ,
AccountSASPermissions ,
AccountSASServices ,
AccountSASResourceTypes ,
generateFileSASQueryParameters,
generateAccountSASQueryParameters,
ShareCreateResponse ,
FileDownloadResponseModel ,
DirectoryItem ,
FileItem ,
ShareProperties ,
FileProperties ,
RestError ,
} from "@azure/storage-file-share" ;
Best Practices
Use connection strings for simplicity — Easiest setup for development
Use DefaultAzureCredential for local development; use ManagedIdentityCredential or WorkloadIdentityCredential for production
Set quotas on shares — Prevent unexpected storage costs
Use streaming for large files — uploadStream/downloadToFile for files > 256MB
Use ranges for partial updates — More efficient than full file replacement
Create snapshots before major changes — Point-in-time recovery
Handle errors gracefully — Check RestError.statusCode for specific handling
Use *IfExists methods — For idempotent operations
Platform Differences Feature Node.js Browser StorageSharedKeyCredential✅ ❌ uploadFile()✅ ❌ uploadStream()✅ ❌ downloadToFile()✅ ❌ downloadToBuffer()✅ ❌ SAS generation ✅ ❌ DefaultAzureCredential ✅ ❌ Anonymous/SAS access ✅ ✅