К основному содержанию
скилл

azure-storage-file-share-py — скилл для Claude Code: обзор и запуск

Учит агента работать с файловыми хранилищами Azure по протоколу SMB через Python SDK. Пригодится при переносе сервисов в облако и настройке общего доступа к данным.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add microsoft/skills --skill azure-storage-file-share-py -a claude-code
Открыть на GitHub

Что делает azure-storage-file-share-py

Скилл даёт модели шаблоны работы с библиотекой azure-storage-file-share. Внутри собраны готовые фрагменты кода для управления файловыми ресурсами, папками и файлами: от загрузки строковых данных до чтения большими порциями через метод chunks(). Отдельно показаны методы создания моментальных снимков и скачивания диапазонов байтов.

Для безопасной работы скилл требует использовать контекстные менеджеры и класс DefaultAzureCredential вместо открытых строк подключения. Без установленной библиотеки azure-storage-file-share и заданной переменной AZURE_STORAGE_ACCOUNT_URL скрипты не смогут выполнить запросы к хранилищу.

Какие задачи решает

  • настроить подключение к Azure File Share через DefaultAzureCredential
  • скачивать и загружать файлы чанками без переполнения памяти
  • создавать снимки файловых ресурсов перед обновлением данных
  • управлять структурой вложенных директорий в общем каталоге

Примеры запросов агенту

  • Напиши асинхронный скрипт для выгрузки отчёта в Azure File Share
  • Создай снимок шары backup-share перед удалением старых файлов
  • Покажи, как скачать диапазон байтов из файла в Azure Storage

Как установить azure-storage-file-share-py

1Через Skills CLI (Vercel)

npx skills add microsoft/skills --skill azure-storage-file-share-py -a claude-code

2Вручную: положить файлы

~/.claude/skills/azure-storage-file-share-py/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/azure-storage-file-share-py/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о azure-storage-file-share-py

Как установить azure-storage-file-share-py в Claude Code?

Выполните команду npx skills add microsoft/skills --skill azure-storage-file-share-py -a claude-code. Скилл будет сохранён в ~/.claude/skills/azure-storage-file-share-py/SKILL.md.

Зачем нужен этот скилл?

Он помогает модели писать корректный код для Python SDK хранилища Azure, предотвращая утечки сокетов и использование небезопасных статических ключей.

Какие переменные окружения нужно задать?

Для аутентификации через Entra ID требуется AZURE_STORAGE_ACCOUNT_URL. При использовании DefaultAzureCredential в продакшене также задают AZURE_TOKEN_CREDENTIALS=prod.

Исходный текст

SKILL.md · MIT
---
name: azure-storage-file-share-py
description: |-
  Azure Storage File Share SDK for Python. Use for SMB file shares, directories, and file operations in the cloud.
  Triggers: "azure-storage-file-share", "ShareServiceClient", "ShareClient", "file share", "SMB".
license: MIT
metadata:
  author: Microsoft
  version: "1.0.0"
---

# Azure Storage File Share SDK for Python

Manage SMB file shares for cloud-native and lift-and-shift scenarios.

## Installation

```bash
pip install azure-storage-file-share
```

## Environment Variables

```bash
AZURE_STORAGE_ACCOUNT_URL=https://<account>.file.core.windows.net  # Required for Entra ID auth
AZURE_TOKEN_CREDENTIALS=prod # Required only if DefaultAzureCredential is used in production
```

## Authentication & Lifecycle

> **🔑 Two rules apply to every code sample below:**
>
> 1. **Prefer `DefaultAzureCredential`.** It works locally (Azure CLI / VS Code / Developer CLI) and in Azure (managed identity, workload identity) with no code change. Avoid connection strings, account/API keys — they bypass Entra audit and rotation.
>    - Local dev: `DefaultAzureCredential` works as-is.
>    - Production: set `AZURE_TOKEN_CREDENTIALS=prod` (or `AZURE_TOKEN_CREDENTIALS=<specific_credential>`) to constrain the credential chain to production-safe credentials.
> 2. **Wrap every client in a context manager** so HTTP transports, sockets, and token caches are released deterministically:
>    - Sync: `with <Client>(...) as client:`
>    - Async: `async with <Client>(...) as client:` **and** `async with DefaultAzureCredential() as credential:` (from `azure.identity.aio`)
>
> Snippets may abbreviate this setup, but production code should always follow both rules.

```python
from azure.storage.fileshare import ShareServiceClient
from azure.identity import DefaultAzureCredential, ManagedIdentityCredential

# Local dev: DefaultAzureCredential. Production: set AZURE_TOKEN_CREDENTIALS=prod or AZURE_TOKEN_CREDENTIALS=<specific_credential>
credential = DefaultAzureCredential(require_envvar=True)
# Or use a specific credential directly in production:
# See https://learn.microsoft.com/python/api/overview/azure/identity-readme?view=azure-python#credential-classes
# credential = ManagedIdentityCredential()

with ShareServiceClient(
    account_url=os.environ["AZURE_STORAGE_ACCOUNT_URL"],
    credential=credential
) as service:
    # Use service here (see following sections for operations)
    ...
```

## Share Operations

### Create Share

```python
share = service.create_share("my-share")
```

### List Shares

```python
for share in service.list_shares():
    print(f"{share.name}: {share.quota} GB")
```

### Get Share Client

```python
share_client = service.get_share_client("my-share")
```

### Delete Share

```python
service.delete_share("my-share")
```

## Directory Operations

### Create Directory

```python
share_client = service.get_share_client("my-share")
share_client.create_directory("my-directory")

# Nested directory
share_client.create_directory("my-directory/sub-directory")
```

### List Directories and Files

```python
directory_client = share_client.get_directory_client("my-directory")

for item in directory_client.list_directories_and_files():
    if item["is_directory"]:
        print(f"[DIR] {item['name']}")
    else:
        print(f"[FILE] {item['name']} ({item['size']} bytes)")
```

### Delete Directory

```python
share_client.delete_directory("my-directory")
```

## File Operations

### Upload File

```python
file_client = share_client.get_file_client("my-directory/file.txt")

# From string
file_client.upload_file("Hello, World!")

# From file
with open("local-file.txt", "rb") as f:
    file_client.upload_file(f)

# From bytes
file_client.upload_file(b"Binary content")
```

### Download File

```python
file_client = share_client.get_file_client("my-directory/file.txt")

# To bytes
data = file_client.download_file().readall()

# To file
with open("downloaded.txt", "wb") as f:
    data = file_client.download_file()
    data.readinto(f)

# Stream chunks
download = file_client.download_file()
for chunk in download.chunks():
    process(chunk)
```

### Get File Properties

```python
properties = file_client.get_file_properties()
print(f"Size: {properties.size}")
print(f"Content type: {properties.content_settings.content_type}")
print(f"Last modified: {properties.last_modified}")
```

### Delete File

```python
file_client.delete_file()
```

### Copy File

```python
source_url = "https://account.file.core.windows.net/share/source.txt"
dest_client = share_client.get_file_client("destination.txt")
dest_client.start_copy_from_url(source_url)
```

## Range Operations

### Upload Range

```python
# Upload to specific range
file_client.upload_range(data=b"content", offset=0, length=7)
```

### Download Range

```python
# Download specific range
download = file_client.download_file(offset=0, length=100)
data = download.readall()
```

## Snapshot Operations

### Create Snapshot

```python
snapshot = share_client.create_snapshot()
print(f"Snapshot: {snapshot['snapshot']}")
```

### Access Snapshot

```python
snapshot_client = service.get_share_client(
    "my-share",
    snapshot=snapshot["snapshot"]
)
```

## Async Client

```python
from azure.storage.fileshare.aio import ShareServiceClient
from azure.identity.aio import DefaultAzureCredential

async def upload_file():
    async with DefaultAzureCredential() as credential:
        async with ShareServiceClient(account_url, credential=credential) as service:
            share = service.get_share_client("my-share")
            file_client = share.get_file_client("test.txt")
            
            await file_client.upload_file("Hello!")
```

## Client Types

| Client | Purpose |
|--------|---------|
| `ShareServiceClient` | Account-level operations |
| `ShareClient` | Share operations |
| `ShareDirectoryClient` | Directory operations |
| `ShareFileClient` | File operations |

## Best Practices

1. **Pick sync OR async and stay consistent.** Do not mix `azure.storage.fileshare` sync clients with `azure.storage.fileshare.aio` async clients in the same call path. Choose one mode per module.
2. **Always use context managers for clients and async credentials.** Wrap every client in `with ShareServiceClient(...) as client:` (sync) or `async with ShareServiceClient(...) as client:` (async). For async `DefaultAzureCredential` from `azure.identity.aio`, also use `async with credential:` so tokens and transports are cleaned up.
3. **Use `DefaultAzureCredential`** for portable auth across local dev and Azure (avoid connection strings / API keys when possible).
4. **Use Microsoft Entra ID** for production with RBAC
5. **Stream large files** using chunks() to avoid memory issues
6. **Create snapshots** before major changes
7. **Set quotas** to prevent unexpected storage costs
8. **Use ranges** for partial file updates

## Reference Files

| File | Contents |
|------|----------|
| [references/capabilities.md](references/capabilities.md) | Additional non-hero capabilities, operation-group coverage, and production checklists. |
| [references/non-hero-scenarios.md](references/non-hero-scenarios.md) | Dedicated non-hero examples for secondary/advanced scenarios. |

© Microsoft · MIT · microsoft/skills

Похожие скиллы

Все скиллы по теме «Облака: AWS, Azure, GCP» →
caveman-manage JuliusBrussee Проверяет состояние и результаты экспериментов Caveman Cloud, предлагает одно действие или блокирует рискованный запрос. Нужен перед запуском, одобрением, отменой или откатом. CX Codex +1 104 200установок workers-best-practices cloudflare Скилл настраивает ИИ на проверку продакшен-кода Cloudflare Workers по актуальным правилам рантайма, типам Wrangler и антипаттернам. CX Codex +1 126 100установок cloudflare-email-service cloudflare Скилл для работы с Cloudflare Email Sending и Email Routing: помогает настроить отправку и приём писем в Workers. CX Codex +1 102 300установок firebase-basics официальный google Скилл настраивает Firebase CLI, помогает войти в аккаунт, создать или выбрать проект и скачать конфигурацию Android или iOS. CX Codex 14 100установок cloudflare-one cloudflare Помогает агенту проектировать, настраивать и разбирать развёртывания Cloudflare One Zero Trust и SASE. Пригодится, когда нужно спланировать Access, Gateway или туннели без похода в документацию вручную. CX Codex +1 93 100установок cloudflare-one-migrations cloudflare Помогает спланировать переход с VPN, SWG или SASE на Cloudflare One: сопоставляет политики, находит пробелы и расписывает порядок выката. CX Codex +1 89 500установок

Из того же набора207

Весь набор →
azure-ai-projects-ts Подсказывает агенту, как работать с Azure AI Projects SDK для JavaScript: агенты, подключения, деплойменты, датасеты, индексы и оценки. 1установок azure-ai-document-intelligence-ts Помогает настроить парсинг счетов, чеков и таблиц через REST-клиент Azure Document Intelligence на TypeScript. Пригодится для работы с готовыми и кастомными моделями документов. 1установок azure-ai-contentsafety-ts Скилл помогает подключить Azure AI Content Safety из TypeScript-кода: проверять текст и изображения, а также вести списки запрещённых слов. 1установок m365-agents-py Помогает создавать ботов для Teams и Copilot Studio на Python с Microsoft 365 Agents SDK. Настраивает роутинг AgentApplication, сервер aiohttp и авторизацию через MSAL. 1установок azure-storage-file-datalake-py Скилл помогает писать Python-код для Azure Data Lake Storage Gen2: работать с файловыми системами, каталогами и файлами. Пригодится для операций с данными в ADLS Gen2. 1установок azure-servicebus-py Скилл помогает писать код на Python для Azure Service Bus: отправлять и получать сообщения через очереди, топики и подписки. Пригодится при добавлении обмена сообщениями в приложение. 1установок azure-monitor-query-py Скилл помогает писать Python-скрипты для чтения логов Log Analytics и метрик Azure Monitor через официальный SDK. Пригодится при отладке инцидентов и выгрузке телеметрии в Kusto. 1установок azure-monitor-opentelemetry-exporter-py Скилл для низкоуровневой отправки трейсов, метрик и логов OpenTelemetry в Application Insights из Python. Пригодится, когда нужен свой конвейер телеметрии. 1установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой