Sdílet prostřednictvím


Vyvíjejte pro Azure Files s .NET

Naučte se, jak vyvíjet aplikace .NET, které využívají Azure Files k ukládání dat. Azure Files je spravovaná sdílená služba v cloudu. Poskytuje plně spravované sdílené složky, které jsou přístupné prostřednictvím standardních protokolů SMB (Server Message Block) a NFS (Network File System). Azure Files také poskytuje rozhraní REST API pro programový přístup ke sdíleným složkám.

V tomto článku se dozvíte o různých přístupech k vývoji s Azure Files v .NET a jak zvolit přístup, který nejlépe odpovídá potřebám vaší aplikace. Dozvíte se také, jak vytvořit základní konzolovou aplikaci, která komunikuje s prostředky Azure Files.

Platí pro

Model správy Model fakturace Mediální vrstva Přebytečnost Malé a střední podniky (MSP) Síťový souborový systém (NFS)
Microsoft.Storage Zajištěno v2 HDD (standard) Lokální (LRS) Ano Ne
Microsoft.Storage Zajištěno v2 HDD (standard) Zóna (ZRS) Ano Ne
Microsoft.Storage Zajištěno v2 HDD (standard) Geografie (GRS) Ano Ne
Microsoft.Storage Zajištěno v2 HDD (standard) GeoZone (GZRS) Ano Ne
Microsoft.Storage Poskytnuto v1 SSD (Premium) Lokální (LRS) Ano Ne
Microsoft.Storage Poskytnuto v1 SSD (Premium) Zóna (ZRS) Ano Ne
Microsoft.Storage Platba dle skutečné spotřeby HDD (standard) Lokální (LRS) Ano Ne
Microsoft.Storage Platba dle skutečné spotřeby HDD (standard) Zóna (ZRS) Ano Ne
Microsoft.Storage Platba dle skutečné spotřeby HDD (standard) Geografie (GRS) Ano Ne
Microsoft.Storage Platba dle skutečné spotřeby HDD (standard) GeoZone (GZRS) Ano Ne

O vývoji aplikací .NET s Azure Files

Azure Files nabízí několik způsobů, jak mohou vývojáři .NET přistupovat k datům a spravovat prostředky v Azure Files. Následující tabulka uvádí přístupy, shrnuje jejich fungování a poskytuje pokyny k použití jednotlivých přístupů:

Přístup Jak to funguje Kdy používat
Standardní vstupně-výstupní knihovny souborů Používá volání rozhraní API na úrovni operačního systému prostřednictvím sdílených složek Azure připojených pomocí protokolu SMB nebo NFS. Při připojování sdíleného adresáře pomocí SMB/NFS můžete použít knihovny pro vstupně-výstupní operace se soubory v programovacím jazyce nebo rámci, například System.IO pro .NET. Máte aplikace pro firemní použití s existujícím kódem, který používá standardní vstupně-výstupní operace se soubory, a nechcete upravit kód aplikací, aby fungovaly se sdílenou složkou Azure.
FileREST API Přímé volání koncových bodů HTTPS pro interakci s daty uloženými ve službě Azure Files. Poskytuje programové řízení nad zdroji sdílených složek. Sada Azure SDK poskytuje klientskou knihovnu File Shares (Azure.Storage.Files.Shares), která je postavena na FileREST API a umožňuje vám interagovat s operacemi FileREST API prostřednictvím známých paradigmat programovacího jazyka .NET. Budujete cloudové služby a aplikace s přidanou hodnotou pro zákazníky a chcete využít pokročilé funkce, které nejsou dostupné prostřednictvím System.IO.
REST API poskytovatele pro úložiště Používá Azure Resource Manager (ARM) ke správě účtů úložiště a sdílených složek. Volá koncové body rozhraní REST API pro různé operace správy prostředků. Aplikace nebo služba musí provádět úlohy správy prostředků, jako je vytváření, odstraňování nebo aktualizace účtů úložiště nebo sdílených složek.

Obecné informace o těchto přístupech naleznete v Přehledu vývoje aplikací s Azure Files.

Tento článek se zaměřuje na práci s prostředky Azure Files s využitím následujících přístupů:

Požadavky

Nastavení prostředí

Tato sekce vás provede kroky přípravy konzolové aplikace .NET pro práci se soubory Azure.

Vytvoření projektu

Pokud dosud nemáte aplikaci .NET, vytvořte ji pomocí Visual Studio nebo .NET CLI. V tomto článku vytvoříme konzolovou aplikaci kvůli jednoduchosti.

  1. Spusťte Visual Studio a vyberte Vytvořit nový projekt. Nebo pokud jste ve Visual Studiu, přejděte na Soubor>Nový>Projekt.
  2. V dialogovém okně vyberte Console App pro C# a zvolte Další.
  3. Zadejte název projektu, ponechte výchozí hodnoty a vyberte Další.
  4. Pro Framework vyberte nejnovější nainstalovanou verzi .NET. Ponechte ostatní výchozí nastavení a zvolte Vytvořit.

Nainstalujte balíček .

Pokud plánujete interagovat s Azure Files pomocí System.IO prostoru názvů, nemusíte instalovat žádné další balíčky. Jmenný prostor System.IO je součástí .NET SDK. Pokud plánujete použít klientskou knihovnu File Shares pro .NET nebo knihovnu pro správu Azure Storage pro .NET, nainstalujte balíček pomocí NuGet.

  1. V Solution Explorer klikněte pravým tlačítkem na svůj projekt a vyberte Manage NuGet Packages.

  2. Ve Správci balíčků NuGet vyberte Procházet. Poté vyhledejte a vyberte vhodný balíček a zvolte Instalovat. Pro klientskou knihovnu File Shares vyberte Azure.Storage.Files.Shares. Pro knihovnu pro správu Azure Storage zvolte Azure.ResourceManager.Storage. Pro knihovnu Azure Identity, která je potřebná pro připojení bez hesla, zvolte Azure.Identity.

    Tento krok nainstaluje balíček a jeho závislosti.

Přidat direktivy 'using'

Pokud plánujete použít jmenný prostor System.IO, přidejte následující direktivu "using" na začátek souboru Program.cs:

using System.IO;

Pokud plánujete používat klientskou knihovnu sdílených složek pro .NET, přidejte na začátek souboru Program.cs následující direktivu using:

using Azure.Storage.Files.Shares;

Pokud plánujete používat knihovnu pro správu služby Azure Storage pro .NET, přidejte do horní části souboru Program.cs následující direktivu using:

using Azure.ResourceManager;

Pokud chcete použít knihovnu Azure Identity pro připojení bez hesla ke službám Azure, přidejte do horní části souboru Program.cs následující direktivu using:

using Azure.Identity;

Práce se službou Azure Files pomocí System.IO

Standardní vstupně-výstupní knihovny souborů jsou nejběžnějším způsobem přístupu k prostředkům Azure Files a jejich práci. Když připojíte sdílenou složku pomocí protokolu SMB nebo NFS, váš operační systém přesměruje požadavky rozhraní API pro místní systém souborů. Tento přístup umožňuje používat standardní vstupně-výstupní knihovny souborů, jako System.IOje například , pro interakci se soubory a adresáři ve sdílené složce.

Zvažte použití System.IO, když vaše aplikace vyžaduje:

  • Kompatibilita aplikací: Ideální pro podnikové aplikace s existujícím kódem, který již používá System.IO. Aby aplikace fungovala se sdílenou složkou Azure, nemusíte přepisovat kód.
  • Snadnost použití:System.IO je známý vývojářům a snadno použitelný. Návrh klíčové hodnoty služby Azure Files spočívá v tom, že zpřístupňuje nativní rozhraní API systému souborů prostřednictvím protokolu SMB a NFS.

V této části se naučíte, jak používat System.IO ke práci se zdroji Azure Files.

Další informace a příklady najdete v následujících zdrojích informací:

Připojit sdílenou složku

Abyste použili System.IO, musíte nejprve připojit sdílený disk. Pokyny k připojení sdílené složky pomocí protokolu SMB nebo NFS najdete v následujících zdrojích informací:

V tomto článku používáme následující cestu pro odkaz na připojenou sdílenou složku SMB ve Windows:

string fileSharePath = @"Z:\file-share";

Příklad: Připojte se ke sdílenému souboru a enumerujte adresáře pomocí System.IO

Následující příklad kódu ukazuje, jak se připojit ke sdílené složce a zobrazit seznam adresářů ve sdílené složce:

using System.IO;

string fileSharePath = @"Z:\file-share";

EnumerateDirectories(@"Z:\file-share");

static void EnumerateDirectories(string path)
{
    try
    {
        List<string> dirs = new List<string>(Directory.EnumerateDirectories(path));

        foreach (var dir in dirs)
        {
            Console.WriteLine($"{dir.Substring(dir.LastIndexOf(Path.DirectorySeparatorChar) + 1)}");
        }
        Console.WriteLine($"{dirs.Count} directories found.");
    }
    catch (UnauthorizedAccessException ex)
    {
        Console.WriteLine(ex.Message);
    }
    catch (PathTooLongException ex)
    {
        Console.WriteLine(ex.Message);
    }
}

Příklad: Zapisujte do souboru ve sdílení souborů pomocí System.IO

Následující příklad kódu ukazuje, jak psát a připojovat text s File třídou:

using System.IO;

string fileSharePath = @"Z:\file-share";

WriteToFile(fileSharePath, "test.txt");

static void WriteToFile(string fileSharePath, string fileName)
{
    string textToWrite = "First line" + Environment.NewLine;
    string filePath = Path.Combine(fileSharePath, fileName);
    
    File.WriteAllText(filePath, textToWrite);

    string[] textToAppend = { "Second line", "Third line" };
    File.AppendAllLines(filePath, textToAppend);
}

Příklad: Zamkněte soubor ve sdílené složce pomocí System.IO

Klienti SMB, kteří připojují sdílení souborů, mohou používat mechanismy uzamčení souborového systému k řízení přístupu ke sdíleným souborům.

Následující příklad kódu ukazuje, jak uzamknout soubor ve sdílené složce s režimem sdílení nastaveným na None. Tento režim sdílení znemožňuje sdílení aktuálního souboru, dokud není soubor uzavřen.

using System.IO;

string fileSharePath = @"Z:\file-share";

LockFile(Path.Combine(fileSharePath, "test.txt"));

static void LockFile(string filePath)
{
    try
    {
        using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.ReadWrite, FileShare.None))
        {
            Console.WriteLine("File locked.");

            // Do something with file, press Enter to close the stream and release the lock
            Console.ReadLine();

            fs.Close();
            Console.WriteLine("File closed.");
        }
    }
    catch (IOException ex)
    {
        Console.WriteLine(ex.Message);
    }
}

Při použití protokolu SMB i FileREST API mějte na paměti, že FileREST API používá ke správě zámků souborů leasing, zatímco SMB používá zámky systému souborů spravované operačním systémem. Další informace o správě interakcí uzamčení souborů mezi protokolem SMB a rozhraním FileREST API najdete v tématu Správa zámků souborů.

Příklad: Vyjmenujte souborové ACLs pomocí System.IO

Následující příklad kódu ukazuje, jak vypsat seznamy řízení přístupu (ACL) pro soubor:

using System.IO;
using System.Security.AccessControl;

string fileSharePath = @"Z:\file-share";
string fileName = "test.txt";
string filePath = Path.Combine(fileSharePath, fileName);

EnumerateFileACLs(filePath);

static void EnumerateFileACLs(string filePath)
{
    FileInfo fileInfo = new FileInfo(filePath);

    // For directories, use DirectorySecurity instead of FileSecurity
    FileSecurity fSecurity = FileSystemAclExtensions.GetAccessControl(fileInfo);

    // List all access rules for the file
    foreach (FileSystemAccessRule rule in fSecurity.GetAccessRules(true, true, typeof(System.Security.Principal.NTAccount)))
    {
        Console.WriteLine($"Identity: {rule.IdentityReference.Value}");
        Console.WriteLine($"Access Control Type: {rule.AccessControlType}");
        Console.WriteLine($"File System Rights: {rule.FileSystemRights}");
        Console.WriteLine();
    }

}

Práce s daty Azure Files pomocí knihovny klienta File Shares pro .NET

Rozhraní FileREST API poskytuje programový přístup ke službě Azure Files. Umožňuje volat koncové body HTTPS, které provádějí operace se sdílenými složkami, adresáři a soubory. Rozhraní FileREST API je navržené pro vysokou škálovatelnost a pokročilé funkce, které nemusí být dostupné prostřednictvím nativních protokolů. Sada Azure SDK poskytuje knihovny pro klienty, jako je knihovna klientů File Shares pro .NET, které staví na FileREST API.

Pokud vaše aplikace vyžaduje, zvažte použití rozhraní FileREST API a klientské knihovny sdílené složky:

  • Pokročilé funkce: Přístup k operacím a funkcím, které nejsou dostupné prostřednictvím nativních protokolů.
  • Vlastní integrace cloudu: Vytvářejte vlastní služby přidané hodnotou, jako je zálohování, antivirový program nebo správa dat, které komunikují přímo se službou Azure Files.
  • Optimalizace výkonu: Využijte výhod výkonu ve scénářích s vysokým měřítkem pomocí operací roviny dat.

Rozhraní FileREST API modeluje Soubory Azure jako hierarchii prostředků a doporučuje se pro operace prováděné na úrovni adresáře nebo souboru . Pro operace prováděné na úrovni souborové služby nebo sdílené složky byste měli preferovat rozhraní REST API poskytovatele prostředků úložiště.

V této části se dozvíte, jak používat klientskou knihovnu sdílených složek k práci s prostředky Azure Files.

Další informace a příklady najdete v následujících zdrojích informací:

Autorizace přístupu a vytvoření klienta

Pokud chcete připojit aplikaci ke službě Azure Files, vytvořte ShareClient objekt. Tento objekt je vaším výchozím bodem pro práci s prostředky Azure Files. Následující příklady kódu ukazují, jak vytvořit ShareClient objekt pomocí různých mechanismů autorizace.

Pokud chcete autorizovat pomocí ID Microsoft Entra, musíte použít bezpečnostní identitu. Typ požadovaného objektu zabezpečení závisí na tom, kde vaše aplikace běží. Tuto tabulku použijte jako vodítko.

Kde aplikace běží Bezpečnostní hlavní prvek Vodítko
Místní počítač (vývoj a testování) Hlavní služba Informace o registraci aplikace, nastavení skupiny Microsoft Entra, přiřazení rolí a konfigurace proměnných prostředí najdete v tématu Autorizace přístupu pomocí instančních objektů pro vývojáře.
Místní počítač (vývoj a testování) Identita uživatele Informace o nastavení skupiny Microsoft Entra, přiřazení rolí a přihlášení k Azure najdete v tématu Autorizace přístupu pomocí přihlašovacích údajů pro vývojáře.
Hostované v Azure Spravovaná identita Informace o povolení spravované identity a přiřazování rolí najdete v tématu Autorizace přístupu z aplikací hostovaných v Azure pomocí spravované identity.
Hostované mimo Azure (například místní aplikace) Hlavní služba Informace o registraci aplikace, přiřazení rolí a konfiguraci proměnných prostředí najdete v tématu Autorizace přístupu z místních aplikací pomocí instančního objektu aplikace.

Pokud chcete pracovat s příklady kódu v tomto článku, přiřaďte k objektu zabezpečení předdefinovanou roli Storage File Data Privileged Contributor v rámci Azure RBAC. Tato role poskytuje úplný přístup ke čtení, zápisu, úpravě seznamů ACL a odstraňování všech dat ve sdílených složkách pro všechny nakonfigurované účty úložiště bez ohledu na nastavená oprávnění NTFS na úrovni souboru nebo adresáře. Další informace najdete v tématu Přístup ke sdíleným složkám Azure pomocí ID Microsoft Entra s OAuth služby Azure Files přes REST.

Autorizace přístupu pomocí DefaultAzureCredential

Snadným a bezpečným způsobem autorizace přístupu a připojení ke službě Azure Files je získání tokenu OAuth vytvořením instance DefaultAzureCredential . Tyto přihlašovací údaje pak můžete použít k vytvoření objektu ShareClient .

Následující příklad vytvoří ShareClient objekt autorizovaný pomocí DefaultAzureCredentiala pak vytvoří ShareDirectoryClient objekt pro práci s adresářem ve sdílené složce:

using Azure.Identity;
using Azure.Storage.Files.Shares;
using Azure.Storage.Files.Shares.Models;

// ...

string accountName = "<account-name>";
string shareName = "<share-name>";

ShareClientOptions options = new()
{
    AllowSourceTrailingDot = true,
    AllowTrailingDot = true,
    ShareTokenIntent = ShareTokenIntent.Backup,
};
ShareClient shareClient = new(
   new Uri($"https://{accountName}.file.core.windows.net/{shareName}"),
   new DefaultAzureCredential(),
   options);

ShareDirectoryClient directoryClient = shareClient.GetDirectoryClient("sample-directory");

Pokud přesně víte, jaký typ přihlašovacích údajů používáte k ověřování uživatelů, můžete token OAuth získat pomocí jiných tříd v klientské knihovně identit Azure pro .NET. Tyto třídy jsou odvozeny z TokenCredential třídy.

Další informace o každém z těchto mechanismů autorizace najdete v tématu Volba způsobu autorizace přístupu k datům souborů.

Příklad: Kopírování souborů pomocí klientské knihovny sdílených složek

Soubory ve sdílené složce nebo mezi sdílenými složkami můžete kopírovat pomocí následující metody:

Pomocí následující metody z objektu BlobClient můžete zkopírovat soubor do cílového objektu blob.

Následující příklad kódu ukazuje, jak zkopírovat soubor do souboru v jiné sdílené složce:

using Azure.Core;
using Azure.Identity;
using Azure.Storage.Files.Shares;
using Azure.Storage.Files.Shares.Models;

string accountName = "<account-name>";
string srcShareName = "src-file-share";
string destShareName = "dest-file-share";
string srcFilePath = "src/path/to/file";
string destFilePath = "dest/path/to/file";

TokenCredential tokenCredential = new DefaultAzureCredential();

ShareClientOptions options = new()
{
    ShareTokenIntent = ShareTokenIntent.Backup,
};

ShareFileClient srcShareFileClient = new(
    new Uri($"https://{accountName}.file.core.windows.net/{srcShareName}/{srcFilePath}"),
    tokenCredential,
    options);

ShareFileClient destShareFileClient = new(
    new Uri($"https://{accountName}.file.core.windows.net/{destShareName}/{destFilePath}"),
    tokenCredential,
    options);

// Copy the file from the source share to the destination share

await destShareFileClient.StartCopyAsync(srcShareFileClient.Uri);

Příklad: Zapůjčení souboru pomocí klientské knihovny sdílených složek

Pronájem vytvoří zámek v souboru, který je spravován Azure prostřednictvím ID pronájmu. Zapůjčení poskytuje mechanismus pro koordinaci přístupu k souborům napříč více klienty v distribuovaném systému. Zapůjčení souboru poskytuje výhradní přístup k zápisu a odstranění. Další informace o stavech a akcích zapůjčení najdete v tématu Soubor zapůjčení.

Následující příklad kódu ukazuje, jak vytvořit klienta zapůjčení, získat nekonečnou dobu zapůjčení souboru a uvolnit zapůjčení:

using Azure.Core;
using Azure.Identity;
using Azure.Storage.Files.Shares;
using Azure.Storage.Files.Shares.Models;
using Azure.Storage.Files.Shares.Specialized;

string accountName = "<account-name>";
string shareName = "sample-file-share";
string filePath = "path/to/file";

TokenCredential tokenCredential = new DefaultAzureCredential();

ShareClientOptions options = new()
{
    ShareTokenIntent = ShareTokenIntent.Backup,
};

ShareFileClient fileClient = new(
    new Uri($"https://{accountName}.file.core.windows.net/{shareName}/{filePath}"),
    tokenCredential,
    options);

ShareLeaseClient leaseClient = fileClient.GetShareLeaseClient();

// Acquire a lease on the source file
await leaseClient.AcquireAsync(duration: ShareLeaseClient.InfiniteLeaseDuration);

// Do something with the file

// Release the lease
await leaseClient.ReleaseAsync();

Při použití protokolu SMB i FileREST API mějte na paměti, že FileREST API používá ke správě zámků souborů leasing, zatímco SMB používá zámky systému souborů spravované operačním systémem. Další informace o správě interakcí uzamčení souborů mezi protokolem SMB a rozhraním FileREST API najdete v tématu Správa zámků souborů.

Příklad: Vytvoření a výpis snímků sdílených složek pomocí klientské knihovny sdílených složek

Snímky sdílených souborů jsou kopie sdílení souborů pouze pro čtení v určitém okamžiku. Můžete vytvořit snímek sdílené složky a pak pomocí snímku získat přístup k datům ve sdílené složce v okamžiku vytvoření snímku. Můžete také zobrazit seznam všech snímků ve sdílené složce a odstranit snímky sdílené složky.

Následující příklad kódu ukazuje, jak vytvořit snímek sdílení, jak vypsat snímky ve sdílené složce a jak procházet strom adresářů ve snímku sdílení.

using Azure.Storage.Files.Shares;
using Azure.Storage.Files.Shares.Models;

string connectionString = "<connection-string>";

ShareServiceClient shareServiceClient = new ShareServiceClient(connectionString);
ShareClient shareClient = shareServiceClient.GetShareClient("sample-file-share");

// Create a snapshot

ShareSnapshotInfo snapshotInfo = await shareClient.CreateSnapshotAsync();
Console.WriteLine($"Snapshot created: {snapshotInfo.Snapshot}");

// List snapshots in a share

await foreach (ShareItem shareItem in shareServiceClient.GetSharesAsync(ShareTraits.All, ShareStates.Snapshots))
{
    if (shareItem.Snapshot != null)
    {
        Console.WriteLine($"Share: {shareItem.Name} (Snapshot: {shareItem.Snapshot})");
    }
}

// List directories and files in a share snapshot

string snapshotTimestamp = snapshotInfo.Snapshot.ToString();
ShareClient shareSnapshot = shareClient.WithSnapshot(snapshotTimestamp);
ShareDirectoryClient rootDir = shareSnapshot.GetRootDirectoryClient();

await ListDirectoryTreeAsync(rootDir);

static async Task ListDirectoryTreeAsync(ShareDirectoryClient directory)
{
    await foreach (ShareFileItem fileItem in directory.GetFilesAndDirectoriesAsync())
    {
        if (fileItem.IsDirectory)
        {
            Console.WriteLine($"Directory: {fileItem.Name}");
            await ListDirectoryTreeAsync(directory.GetSubdirectoryClient(fileItem.Name));
        }
        else
        {
            Console.WriteLine($"File: {fileItem.Name}");
        }
    }
}

Poznámka:

Tokeny OAuth, jako jsou tokeny získané při použití DefaultAzureCredential, nejsou povolené pro operace roviny dat na úrovni sdílené složky. Aby bylo možné pracovat se snímky sdílených složek, musí být klientský objekt autorizovaný pomocí klíče účtu. Objekt ShareClient vytvořený v tomto příkladu kódu používá připojovací řetězec, který obsahuje klíč účtu.

Ukládání klíčů účtu nebo připojovacích řetězců představuje bezpečnostní riziko. Měli byste je použít jenom v případě, že ověřování Microsoft Entra není k dispozici. Další informace o bezpečném ukládání klíčů účtu ve službě Azure Key Vault najdete v tématu O klíčích účtu spravovaného úložiště služby Azure Key Vault.

Správa prostředků Azure Files pomocí knihoven pro správu služby Azure Storage

Knihovny pro správu úložiště Azure jsou postaveny na REST API poskytovatele prostředků úložiště Azure. Poskytovatel prostředků Azure Storage je služba založená na Azure Resource Manageru a podporuje deklarativní (šablony) i imperativní (přímé volání rozhraní API). Rozhraní REST API poskytovatele prostředků Azure Storage poskytuje programový přístup k prostředkům azure Storage, včetně sdílených složek. Sada Azure SDK poskytuje knihovny pro správu, které vycházejí z rozhraní REST API poskytovatele prostředků Azure Storage.

Knihovny pro správu se doporučují pro operace prováděné na úrovni souborové služby nebo sdílené složky . V této části se dozvíte, jak používat knihovny pro správu služby Azure Storage ke správě prostředků Azure Files.

Příklad: Vytvoření sdílené složky pomocí knihovny pro správu Azure Storage

Následující příklad kódu ukazuje, jak vytvořit objekt nejvyšší úrovně ArmClient , zaregistrovat poskytovatele prostředků úložiště s předplatným a vytvořit sdílenou složku pomocí knihovny pro správu Azure Storage:

using Azure;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.Storage;

ArmClient armClient = new ArmClient(new DefaultAzureCredential());

// Create a resource identifier, then get the subscription resource
ResourceIdentifier resourceIdentifier = new($"/subscriptions/<subscription-id>");
SubscriptionResource subscription = armClient.GetSubscriptionResource(resourceIdentifier);

ResourceProviderResource resourceProvider =
    await subscription.GetResourceProviderAsync("Microsoft.Storage");

// Check the registration state of the resource provider and register, if needed
if (resourceProvider.Data.RegistrationState == "NotRegistered")
    resourceProvider.Register();

// Get a resource group
ResourceGroupResource resourceGroup = await subscription.GetResourceGroupAsync("<resource-group-name>");

// Get a collection of storage account resources
StorageAccountCollection accountCollection = resourceGroup.GetStorageAccounts();

// Get a specific storage account resource
StorageAccountResource storageAccount = await accountCollection.GetAsync("<storage-account-name>");

// Get a file service resource for the storage account
FileServiceResource fileService = storageAccount.GetFileService();

// Create a new file share (or update if it already exists)
ArmOperation <FileShareResource> fileShareOperation = await fileService
    .GetFileShares()
    .CreateOrUpdateAsync(WaitUntil.Completed, "sample-file-share", new FileShareData()
    {
        ShareQuota = 1024,
        // Add file share properties here
    });

// Get the file share resource
FileShareResource fileShare = fileShareOperation.Value;

Vlastnosti sdílení souborů můžete nakonfigurovat pomocí třídy FileShareData. Předchozí příklad ukazuje, jak nastavit ShareQuota vlastnost.

Poznámka:

K provedení operace registrace potřebujete oprávnění pro následující akci Azure RBAC: Microsoft.Storage/register/action. Toto oprávnění je součástí předdefinovaných rolí Přispěvatel a Vlastník.

Příklad: Výpis sdílených složek a snímků pomocí knihovny pro správu Azure Storage

Následující příklad kódu ukazuje, jak zobrazit seznam sdílených složek a snímků v účtu úložiště:

// Iterate over a collection of file shares and list them along with any snapshots
string expand = "snapshots";
await foreach (FileShareResource shareResource in fileService.GetFileShares().GetAllAsync(expand: expand))
{
    // Call operations on the file share resource

    // For this demo, print out the resource name and snapshot information
    FileShareData resourceData = shareResource.Data;
    Console.WriteLine($"Resource name: {resourceData.Name}");
    if (resourceData.SnapshotOn.HasValue)
    {
        Console.WriteLine($"Snapshot: {resourceData.SnapshotOn}");
    }
}

Další informace o vývoji pomocí služby Azure Files najdete v následujících zdrojích informací: