Vývoj pro Soubory Azure pomocí .NETDevelop for Azure Files with .NET

Tento kurz ukazuje základy používání .NET k vývoji aplikací a služeb, které používají Soubory Azure k ukládání dat souborů.This tutorial demonstrates the basics of using .NET to develop applications that use Azure Files to store file data. V tomto kurzu se vytvoří jednoduchá Konzolová aplikace, která provede základní akce se soubory .NET a Azure:This tutorial creates a simple console application to do basic actions with .NET and Azure Files:

  • Získá obsah souboru.Get the contents of a file.
  • Nastavte maximální velikost nebo kvótu pro sdílenou složku.Set the maximum size or quota for the file share.
  • Vytvořte sdílený přístupový podpis (klíč SAS) pro soubor, který používá zásady uloženého přístupu definované ve sdílené složce.Create a shared access signature (SAS key) for a file that uses a stored access policy defined on the share.
  • Zkopírujte soubor do jiného souboru ve stejném účtu úložiště.Copy a file to another file in the same storage account.
  • Zkopírujte soubor do objektu blob ve stejném účtu úložiště.Copy a file to a blob in the same storage account.
  • Pro řešení potíží použijte Azure Storage metriky.Use Azure Storage Metrics for troubleshooting.

Další informace o službě soubory Azure najdete v tématu co je Azure Files?To learn more about Azure Files, see What is Azure Files?

Tip

Projděte si úložiště s ukázkami kódu pro Azure StorageCheck out the Azure Storage code samples repository

Snadno použitelné a úplné ukázky kódu pro Azure Storage, které si můžete stáhnout a použít, jsou shrnuté v seznamu ukázky pro Azure Storage.For easy-to-use end-to-end Azure Storage code samples that you can download and run, please check out our list of Azure Storage Samples.

Vysvětlení rozhraní API .NETUnderstanding the .NET APIs

Soubory Azure poskytuje dva přístupy ke klientským aplikacím: protokol SMB (Server Message Block) a REST.Azure Files provides two broad approaches to client applications: Server Message Block (SMB) and REST. V rozhraní .NET rozhraní API System.IO a WindowsAzure.Storage tyto přístupy abstraktní.Within .NET, the System.IO and WindowsAzure.Storage APIs abstract these approaches.

Rozhraní APIAPI Kdy je použítWhen to use Poznámky:Notes
System.IOSystem.IO Vaše aplikace:Your application:
  • Musí číst/zapisovat soubory pomocí protokolu SMB.Needs to read/write files by using SMB
  • Je spuštěná v zařízení, které má prostřednictvím portu 445 přístup k vašemu účtu služby Soubory Azure.Is running on a device that has access over port 445 to your Azure Files account
  • Nemusí spravovat žádná nastavení pro správu sdílené složky.Doesn't need to manage any of the administrative settings of the file share
I/O souborů implementovaných pomocí služby Azure Files přes SMB je obvykle stejné jako u vstupu a výstupu pomocí libovolné síťové sdílené složky nebo místního úložného zařízení.File I/O implemented with Azure Files over SMB is generally the same as I/O with any network file share or local storage device. Úvod do řady funkcí v rozhraní .NET, včetně vstupně-výstupních operací se soubory, najdete v kurzu konzolové aplikace .For an introduction to a number of features in .NET, including file I/O, see the Console Application tutorial.
Microsoft. Azure. Storage. FileMicrosoft.Azure.Storage.File Vaše aplikace:Your application:
  • K souborům Azure nelze přistupovat pomocí protokolu SMB na portu 445 z důvodu omezení brány firewall nebo poskytovatele internetových služeb.Can't access Azure Files by using SMB on port 445 because of firewall or ISP constraints
  • Vyžaduje funkce pro správu, jako je například možnost nastavit kvótu sdílené složky nebo vytvořit sdílený přístupový podpis.Requires administrative functionality, such as the ability to set a file share's quota or create a shared access signature
Tento článek ukazuje použití Microsoft.Azure.Storage.File pro vstupně-výstupní operace se soubory pomocí REST místo SMB a správy sdílené složky.This article demonstrates the use of Microsoft.Azure.Storage.File for file I/O using REST instead of SMB and management of the file share.

Vytvoření konzolové aplikace a získání sestaveníCreate the console application and obtain the assembly

V sadě Visual Studio vytvořte novou konzolovou aplikaci pro Windows.In Visual Studio, create a new Windows console application. Následující kroky ukazují, jak vytvořit konzolovou aplikaci v aplikaci Visual Studio 2019.The following steps show you how to create a console application in Visual Studio 2019. Kroky u ostatních verzí sady Visual Studio jsou podobné.The steps are similar in other versions of Visual Studio.

  1. Spusťte aplikaci Visual Studio a vyberte možnost vytvořit nový projekt.Start Visual Studio and select Create a new project.
  2. V možnosti vytvořit nový projektzvolte Konzolová aplikace (.NET Framework) pro C#a pak vyberte Další.In Create a new project, choose Console App (.NET Framework) for C#, and then select Next.
  3. V části Konfigurace nového projektuzadejte název aplikace a vyberte vytvořit.In Configure your new project, enter a name for the app, and select Create.

Všechny příklady kódu v tomto kurzu můžete přidat do metody Main() souboru Program.cs vaší konzolové aplikace.You can add all the code examples in this tutorial to the Main() method of your console application's Program.cs file.

Můžete použít knihovnu klienta Azure Storage v jakémkoli typu aplikace .NET.You can use the Azure Storage client library in any type of .NET application. Mezi tyto typy patří cloudová služba Azure nebo webová aplikace a desktopové a mobilní aplikace.These types include an Azure cloud service or web app, and desktop and mobile applications. V této příručce použijeme konzolovou aplikaci kvůli zjednodušení.In this guide, we use a console application for simplicity.

Použití balíčku NuGet k instalaci požadovaných balíčkůUse NuGet to install the required packages

Pro dokončení tohoto kurzu se podívejte na tyto balíčky v projektu:Refer to these packages in your project to complete this tutorial:

K získání obou balíčků můžete použít balíček NuGet.You can use NuGet to obtain both packages. Postupujte následovně:Follow these steps:

  1. V Průzkumník řešeníklikněte pravým tlačítkem myši na projekt a vyberte možnost Spravovat balíčky NuGet.In Solution Explorer, right-click your project and choose Manage NuGet Packages.

  2. V nástroji Správce balíčků NuGetvyberte Procházet.In NuGet Package Manager, select Browse. Pak vyhledejte a zvolte Microsoft. Azure. Storage. bloba pak vyberte nainstalovat.Then search for and choose Microsoft.Azure.Storage.Blob, and then select Install.

    Tento krok nainstaluje balíček a jeho závislosti.This step installs the package and its dependencies.

  3. Vyhledejte a nainstalujte tyto balíčky:Search for and install these packages:

    • Microsoft. Azure. Storage. CommonMicrosoft.Azure.Storage.Common
    • Microsoft. Azure. Storage. FileMicrosoft.Azure.Storage.File
    • Microsoft. Azure. ConfigurationManagerMicrosoft.Azure.ConfigurationManager

Uložte přihlašovací údaje účtu úložiště do souboru App. config.Save your storage account credentials to the App.config file

Potom uložte své přihlašovací údaje do souboru App.config projektu.Next, save your credentials in your project's App.config file. V Průzkumník řešenídvakrát klikněte App.config a upravte soubor tak, aby byl podobný následujícímu příkladu.In Solution Explorer, double-click App.config and edit the file so that it is similar to the following example. Nahraďte myaccount názvem svého účtu úložiště a mykey s klíčem účtu úložiště.Replace myaccount with your storage account name and mykey with your storage account key.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
    <appSettings>
        <add key="StorageConnectionString" value="DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=StorageAccountKeyEndingIn==" />
    </appSettings>
</configuration>

Poznámka

Nejnovější verze emulátoru úložiště Azure nepodporuje Soubory Azure. Aby váš připojovací řetězec mohl pracovat se Soubory Azure, musí jako cíl mít účet služby Azure Storage v cloudu.Your connection string must target an Azure Storage Account in the cloud to work with Azure Files.

Přidání direktiv usingAdd using directives

V Průzkumník řešeníotevřete Program.cs soubor a na začátek souboru přidejte následující direktivy using.In Solution Explorer, open the Program.cs file, and add the following using directives to the top of the file.

using Microsoft.Azure; // Namespace for Azure Configuration Manager
using Microsoft.Azure.Storage; // Namespace for Storage Client Library
using Microsoft.Azure.Storage.Blob; // Namespace for Azure Blobs
using Microsoft.Azure.Storage.File; // Namespace for Azure Files

Knihovna správce konfigurace Microsoft Azure pro .NET poskytuje třídu pro potřeby analýzy připojovacího řetězce z konfiguračního souboru.The Microsoft Azure Configuration Manager Library for .NET provides a class for parsing a connection string from a configuration file. Třída CloudConfigurationManager analyzuje nastavení konfigurace.The CloudConfigurationManager class parses configuration settings. Analyzuje nastavení pro klientské aplikace, které běží na ploše, na mobilním zařízení, na virtuálním počítači Azure nebo v cloudové službě Azure.It parses settings for client applications that run on the desktop, on a mobile device, in an Azure virtual machine, or in an Azure cloud service.

Chcete-li odkazovat na balíček CloudConfigurationManager, přidejte následující direktivy using:To reference the CloudConfigurationManager package, add the following using directives:

using Microsoft.Azure; //Namespace for CloudConfigurationManager
using Microsoft.Azure.Storage;

Tady je příklad, který ukazuje, jak z konfiguračního souboru získat připojovací řetězec:Here's an example that shows how to retrieve a connection string from a configuration file:

// Parse the connection string and return a reference to the storage account.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
    CloudConfigurationManager.GetSetting("StorageConnectionString"));

Použití nástroje Azure Configuration Manager není povinné.Using the Azure Configuration Manager is optional. Můžete také použít rozhraní API, například třídu ConfigurationManager.NET Framework.You can also use an API such as the .NET Framework's ConfigurationManager Class.

Programový přístup ke sdílené složceAccess the file share programmatically

Dále přidejte následující obsah do metody Main() za kód zobrazený výše k načtení připojovacího řetězce.Next, add the following content to the Main() method, after the code shown above, to retrieve the connection string. Tento kód získá odkaz na soubor, který jsme vytvořili dříve, a vytvoří výstup svého obsahu.This code gets a reference to the file we created earlier and outputs its contents.

// Create a CloudFileClient object for credentialed access to Azure Files.
CloudFileClient fileClient = storageAccount.CreateCloudFileClient();

// Get a reference to the file share we created previously.
CloudFileShare share = fileClient.GetShareReference("logs");

// Ensure that the share exists.
if (share.Exists())
{
    // Get a reference to the root directory for the share.
    CloudFileDirectory rootDir = share.GetRootDirectoryReference();

    // Get a reference to the directory we created previously.
    CloudFileDirectory sampleDir = rootDir.GetDirectoryReference("CustomLogs");

    // Ensure that the directory exists.
    if (sampleDir.Exists())
    {
        // Get a reference to the file we created previously.
        CloudFile file = sampleDir.GetFileReference("Log1.txt");

        // Ensure that the file exists.
        if (file.Exists())
        {
            // Write the contents of the file to the console window.
            Console.WriteLine(file.DownloadTextAsync().Result);
        }
    }
}

Výstup zobrazíte spuštěním konzolové aplikace.Run the console application to see the output.

Nastavení maximální velikosti sdílené složkySet the maximum size for a file share

Od verze 5. x z klientské knihovny Azure Storage můžete nastavit kvótu (maximální velikost) pro sdílenou složku.Beginning with version 5.x of the Azure Storage Client Library, you can set the quota (maximum size) for a file share. Můžete se taky podívat, kolik data je aktuálně uloženo ve sdílené složce.You can also check to see how much data is currently stored on the share.

Nastavení kvóty pro sdílenou složku omezí celkovou velikost souborů uložených ve sdílené složce.Setting the quota for a share limits the total size of the files stored on the share. Pokud celková velikost souborů ve sdílené složce překročí kvótu nastavenou pro sdílenou složku, klienti nemůžou zvětšit velikost existujících souborů.If the total size of files on the share exceeds the quota set on the share, clients can't increase the size of existing files. Klienti nemůžou vytvářet nové soubory, pokud tyto soubory nejsou prázdné.Clients can't create new files, unless those files are empty.

Dole uvedený příklad ukazuje, jak můžete zkontrolovat aktuální využití sdílené složky a jak nastavit kvótu pro sdílenou složku.The example below shows how to check the current usage for a share and how to set the quota for the share.

// Parse the connection string for the storage account.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
    Microsoft.Azure.CloudConfigurationManager.GetSetting("StorageConnectionString"));

// Create a CloudFileClient object for credentialed access to Azure Files.
CloudFileClient fileClient = storageAccount.CreateCloudFileClient();

// Get a reference to the file share we created previously.
CloudFileShare share = fileClient.GetShareReference("logs");

// Ensure that the share exists.
if (share.Exists())
{
    // Check current usage stats for the share.
    // Note that the ShareStats object is part of the protocol layer for the File service.
    Microsoft.Azure.Storage.File.Protocol.ShareStats stats = share.GetStats();
    Console.WriteLine("Current share usage: {0} GB", stats.Usage.ToString());

    // Specify the maximum size of the share, in GB.
    // This line sets the quota to be 10 GB greater than the current usage of the share.
    share.Properties.Quota = 10 + stats.Usage;
    share.SetProperties();

    // Now check the quota for the share. Call FetchAttributes() to populate the share's properties.
    share.FetchAttributes();
    Console.WriteLine("Current share quota: {0} GB", share.Properties.Quota);
}

Vygenerování sdíleného přístupového podpisu pro soubor nebo sdílenou složkuGenerate a shared access signature for a file or file share

Klientská knihovna pro úložiště Azure od verze 5.x umožňuje vygenerovat sdílený přístupový podpis (SAS) pro sdílenou složku nebo konkrétní soubor.Beginning with version 5.x of the Azure Storage Client Library, you can generate a shared access signature (SAS) for a file share or for an individual file. Můžete také vytvořit uložené zásady přístupu pro sdílenou složku pro správu podpisů sdíleného přístupu.You can also create a stored access policy on a file share to manage shared access signatures. Doporučujeme vytvořit zásadu uloženého přístupu, protože umožňuje odvolat SAS, pokud dojde k ohrožení zabezpečení.We recommend creating a stored access policy because it lets you revoke the SAS if it becomes compromised.

Následující příklad vytvoří uloženou zásadu přístupu pro sdílenou složku.The following example creates a stored access policy on a share. Tento příklad používá tuto zásadu k poskytnutí omezení pro SAS v souboru ve sdílené složce.The example uses that policy to provide the constraints for a SAS on a file in the share.

// Parse the connection string for the storage account.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
    Microsoft.Azure.CloudConfigurationManager.GetSetting("StorageConnectionString"));

// Create a CloudFileClient object for credentialed access to Azure Files.
CloudFileClient fileClient = storageAccount.CreateCloudFileClient();

// Get a reference to the file share we created previously.
CloudFileShare share = fileClient.GetShareReference("logs");

// Ensure that the share exists.
if (share.Exists())
{
    string policyName = "sampleSharePolicy" + DateTime.UtcNow.Ticks;

    // Create a new stored access policy and define its constraints.
    SharedAccessFilePolicy sharedPolicy = new SharedAccessFilePolicy()
        {
            SharedAccessExpiryTime = DateTime.UtcNow.AddHours(24),
            Permissions = SharedAccessFilePermissions.Read | SharedAccessFilePermissions.Write
        };

    // Get existing permissions for the share.
    FileSharePermissions permissions = share.GetPermissions();

    // Add the stored access policy to the share's policies. Note that each policy must have a unique name.
    permissions.SharedAccessPolicies.Add(policyName, sharedPolicy);
    share.SetPermissions(permissions);

    // Generate a SAS for a file in the share and associate this access policy with it.
    CloudFileDirectory rootDir = share.GetRootDirectoryReference();
    CloudFileDirectory sampleDir = rootDir.GetDirectoryReference("CustomLogs");
    CloudFile file = sampleDir.GetFileReference("Log1.txt");
    string sasToken = file.GetSharedAccessSignature(null, policyName);
    Uri fileSasUri = new Uri(file.StorageUri.PrimaryUri.ToString() + sasToken);

    // Create a new CloudFile object from the SAS, and write some text to the file.
    CloudFile fileSas = new CloudFile(fileSasUri);
    fileSas.UploadText("This write operation is authorized via SAS.");
    Console.WriteLine(fileSas.DownloadText());
}

Další informace o vytváření a používání sdílených přístupových podpisů najdete v tématu Jak funguje sdílený přístupový podpis.For more information about creating and using shared access signatures, see How a shared access signature works.

Kopírování souborůCopy files

Klientská knihovna pro úložiště Azure od verze 5.x umožňuje kopírovat soubor do jiného souboru, soubor do objektu nebo objekt blob do souboru.Beginning with version 5.x of the Azure Storage Client Library, you can copy a file to another file, a file to a blob, or a blob to a file. V dalších částech ukážeme, jak provádět tyto operace kopírování prostřednictvím kódu programu.In the next sections, we demonstrate how to do these copy operations programmatically.

AzCopy můžete použít také ke kopírování jednoho souboru do jiného nebo ke zkopírování objektu blob do souboru nebo jiným způsobem.You can also use AzCopy to copy one file to another or to copy a blob to a file or the other way around. Viz Začínáme s AzCopy.See Get started with AzCopy.

Poznámka

Pokud kopírujete objekt blob do souboru nebo soubor do objektu blob, musíte použít sdílený přístupový podpis (SAS) k ověření přístupu ze zdrojovému objektu, a to i když kopírujete v rámci jednoho účtu úložiště.If you are copying a blob to a file, or a file to a blob, you must use a shared access signature (SAS) to authorize access to the source object, even if you are copying within the same storage account.

Kopírování souboru do jiného souboruCopy a file to another file

V následujícím příkladu se zkopíruje soubor do jiného souboru ve stejné sdílené složce.The following example copies a file to another file in the same share. Vzhledem k tomu, že tato operace kopírování kopíruje mezi soubory ve stejném účtu úložiště, můžete ke kopírování použít ověřování pomocí sdíleného klíče.Because this copy operation copies between files in the same storage account, you can use Shared Key authentication to do the copy.

// Parse the connection string for the storage account.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
    Microsoft.Azure.CloudConfigurationManager.GetSetting("StorageConnectionString"));

// Create a CloudFileClient object for credentialed access to Azure Files.
CloudFileClient fileClient = storageAccount.CreateCloudFileClient();

// Get a reference to the file share we created previously.
CloudFileShare share = fileClient.GetShareReference("logs");

// Ensure that the share exists.
if (share.Exists())
{
    // Get a reference to the root directory for the share.
    CloudFileDirectory rootDir = share.GetRootDirectoryReference();

    // Get a reference to the directory we created previously.
    CloudFileDirectory sampleDir = rootDir.GetDirectoryReference("CustomLogs");

    // Ensure that the directory exists.
    if (sampleDir.Exists())
    {
        // Get a reference to the file we created previously.
        CloudFile sourceFile = sampleDir.GetFileReference("Log1.txt");

        // Ensure that the source file exists.
        if (sourceFile.Exists())
        {
            // Get a reference to the destination file.
            CloudFile destFile = sampleDir.GetFileReference("Log1Copy.txt");

            // Start the copy operation.
            destFile.StartCopy(sourceFile);

            // Write the contents of the destination file to the console window.
            Console.WriteLine(destFile.DownloadText());
        }
    }
}

Kopírování souboru do objektu blobCopy a file to a blob

V následujícím příkladu se vytvoří soubor a zkopíruje se do objektu blob ve stejném účtu úložiště.The following example creates a file and copies it to a blob within the same storage account. V příkladu se pro zdrojový soubor vytvoří SAS, který služba během operace kopírování použije k autorizaci přístupu ke zdrojovému souboru.The example creates a SAS for the source file, which the service uses to authorize access to the source file during the copy operation.

// Parse the connection string for the storage account.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
    Microsoft.Azure.CloudConfigurationManager.GetSetting("StorageConnectionString"));

// Create a CloudFileClient object for credentialed access to Azure Files.
CloudFileClient fileClient = storageAccount.CreateCloudFileClient();

// Create a new file share, if it does not already exist.
CloudFileShare share = fileClient.GetShareReference("sample-share");
share.CreateIfNotExists();

// Create a new file in the root directory.
CloudFile sourceFile = share.GetRootDirectoryReference().GetFileReference("sample-file.txt");
sourceFile.UploadText("A sample file in the root directory.");

// Get a reference to the blob to which the file will be copied.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("sample-container");
container.CreateIfNotExists();
CloudBlockBlob destBlob = container.GetBlockBlobReference("sample-blob.txt");

// Create a SAS for the file that's valid for 24 hours.
// Note that when you are copying a file to a blob, or a blob to a file, you must use a SAS
// to authorize access to the source object, even if you are copying within the same
// storage account.
string fileSas = sourceFile.GetSharedAccessSignature(new SharedAccessFilePolicy()
{
    // Only read permissions are required for the source file.
    Permissions = SharedAccessFilePermissions.Read,
    SharedAccessExpiryTime = DateTime.UtcNow.AddHours(24)
});

// Construct the URI to the source file, including the SAS token.
Uri fileSasUri = new Uri(sourceFile.StorageUri.PrimaryUri.ToString() + fileSas);

// Copy the file to the blob.
destBlob.StartCopy(fileSasUri);

// Write the contents of the file to the console window.
Console.WriteLine("Source file contents: {0}", sourceFile.DownloadText());
Console.WriteLine("Destination blob contents: {0}", destBlob.DownloadText());

Stejným způsobem můžete kopírovat objekt blob do souboru.You can copy a blob to a file in the same way. Pokud je zdrojovým objektem objekt blob, vytvořte SAS k autorizaci přístupu k tomuto objektu blob během operace kopírování.If the source object is a blob, then create a SAS to authorize access to that blob during the copy operation.

Sdílet snímkyShare snapshots

Od verze 8,5 klientské knihovny Azure Storage můžete vytvořit snímek sdílené složky.Beginning with version 8.5 of the Azure Storage Client Library, you can create a share snapshot. Umožňuje také vypsat nebo procházet snímky sdílené složky a odstranit je.You can also list or browse share snapshots and delete share snapshots. Snímky sdílené složky jsou jen pro čtení, proto u snímků sdílené složky nejsou povoleny žádné operace zápisu.Share snapshots are read-only so no write operations are allowed on share snapshots.

Vytváření snímků sdílené složkyCreate share snapshots

Následující příklad vytvoří snímek sdílené složky.The following example creates a file share snapshot.

storageAccount = CloudStorageAccount.Parse(ConnectionString); 
fClient = storageAccount.CreateCloudFileClient(); 
string baseShareName = "myazurefileshare"; 
CloudFileShare myShare = fClient.GetShareReference(baseShareName); 
var snapshotShare = myShare.Snapshot();

Výpis snímků sdílené složkyList share snapshots

Následující příklad vypíše snímky příslušné sdílené složky.The following example lists the share snapshots on a share.

var shares = fClient.ListShares(baseShareName, ShareListingDetails.All);

Procházení souborů a adresářů v rámci snímků sdílené složkyBrowse files and directories within share snapshots

Následující příklad prochází soubory a adresáře v rámci snímků sdílené složky.The following example browses files and directory within share snapshots.

CloudFileShare mySnapshot = fClient.GetShareReference(baseShareName, snapshotTime); 
var rootDirectory = mySnapshot.GetRootDirectoryReference(); 
var items = rootDirectory.ListFilesAndDirectories();

Vypíše sdílené složky a nasdílí snímky a obnoví sdílené složky nebo soubory ze snímků sdílené složky.List shares and share snapshots and restore file shares or files from share snapshots

Pořízení snímku sdílené složky umožňuje v budoucnu obnovit jednotlivé soubory nebo celou sdílenou složku.Taking a snapshot of a file share enables you to recover individual files or the entire the file share in the future.

Soubor můžete ze snímku sdílené složky obnovit zadáním dotazu na snímky sdílené složky nebo sdílenou složku.You can restore a file from a file share snapshot by querying the share snapshots of a file share. Pak můžete načíst soubor, který patří do konkrétního snímku sdílené složky.You can then retrieve a file that belongs to a particular share snapshot. Tuto verzi použijte k přímému čtení a porovnání nebo obnovení.Use that version to either directly read and compare or to restore.

CloudFileShare liveShare = fClient.GetShareReference(baseShareName);
var rootDirOfliveShare = liveShare.GetRootDirectoryReference();
var dirInliveShare = rootDirOfliveShare.GetDirectoryReference(dirName);
var fileInliveShare = dirInliveShare.GetFileReference(fileName);

CloudFileShare snapshot = fClient.GetShareReference(baseShareName, snapshotTime);
var rootDirOfSnapshot = snapshot.GetRootDirectoryReference();
var dirInSnapshot = rootDirOfSnapshot.GetDirectoryReference(dirName);
var fileInSnapshot = dir1InSnapshot.GetFileReference(fileName);

string sasContainerToken = string.Empty;
SharedAccessFilePolicy sasConstraints = new SharedAccessFilePolicy();
sasConstraints.SharedAccessExpiryTime = DateTime.UtcNow.AddHours(24);
sasConstraints.Permissions = SharedAccessFilePermissions.Read;

//Generate the shared access signature on the container, setting the constraints directly on the signature.
sasContainerToken = fileInSnapshot.GetSharedAccessSignature(sasConstraints);

string sourceUri = (fileInSnapshot.Uri.ToString() + sasContainerToken + "&" + fileInSnapshot.SnapshotTime.ToString()); ;
fileInliveShare.StartCopyAsync(new Uri(sourceUri));

Odstranit snímky sdílené složkyDelete share snapshots

Následující příklad odstraní snímek sdílené složky.The following example deletes a file share snapshot.

CloudFileShare mySnapshot = fClient.GetShareReference(baseShareName, snapshotTime); mySnapshot.Delete(null, null, null);

Řešení potíží se soubory Azure pomocí metrikTroubleshoot Azure Files by using metrics

Analýza úložiště Azure teď podporuje metriky pro Soubory Azure.Azure Storage Analytics now supports metrics for Azure Files. S údaji z metriky můžete sledovat žádosti a diagnostikovat potíže.With metrics data, you can trace requests and diagnose issues.

Metriky pro soubory Azure můžete povolit z Azure Portal.You can enable metrics for Azure Files from the Azure portal. Metriky můžete také povolit programově voláním operace set File Service Properties u REST API nebo některého z jeho analogických operací v klientské knihovně pro úložiště.You can also enable metrics programmatically by calling the Set File Service Properties operation with the REST API or one of its analogs in the Storage Client Library.

Následující příklad kódu ukazuje, jak můžete použít Klientskou knihovnu pro úložiště pro .NET k zapnutí metrik pro Soubory Azure.The following code example shows how to use the Storage Client Library for .NET to enable metrics for Azure Files.

Nejprve do Program.cs souboru přidejte následující direktivy using společně s těmi, které jste přidali výše:First, add the following using directives to your Program.cs file, along with the ones you added above:

using Microsoft.Azure.Storage.File.Protocol;
using Microsoft.Azure.Storage.Shared.Protocol;

I když objekty blob Azure, tabulky Azure a fronty Azure používají sdílený ServiceProperties typ v oboru názvů Microsoft.Azure.Storage.Shared.Protocol, Azure Files používá vlastní typ, FileServiceProperties typ v oboru názvů Microsoft.Azure.Storage.File.Protocol.Although Azure Blobs, Azure Tables, and Azure Queues use the shared ServiceProperties type in the Microsoft.Azure.Storage.Shared.Protocol namespace, Azure Files uses its own type, the FileServiceProperties type in the Microsoft.Azure.Storage.File.Protocol namespace. Pro zkompilování tohoto kódu je však nutné odkazovat oba obory názvů z kódu.You must reference both namespaces from your code, however, for the following code to compile.

// Parse your storage connection string from your application's configuration file.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
        Microsoft.Azure.CloudConfigurationManager.GetSetting("StorageConnectionString"));
// Create the File service client.
CloudFileClient fileClient = storageAccount.CreateCloudFileClient();

// Set metrics properties for File service.
// Note that the File service currently uses its own service properties type,
// available in the Microsoft.Azure.Storage.File.Protocol namespace.
fileClient.SetServiceProperties(new FileServiceProperties()
{
    // Set hour metrics
    HourMetrics = new MetricsProperties()
    {
        MetricsLevel = MetricsLevel.ServiceAndApi,
        RetentionDays = 14,
        Version = "1.0"
    },
    // Set minute metrics
    MinuteMetrics = new MetricsProperties()
    {
        MetricsLevel = MetricsLevel.ServiceAndApi,
        RetentionDays = 7,
        Version = "1.0"
    }
});

// Read the metrics properties we just set.
FileServiceProperties serviceProperties = fileClient.GetServiceProperties();
Console.WriteLine("Hour metrics:");
Console.WriteLine(serviceProperties.HourMetrics.MetricsLevel);
Console.WriteLine(serviceProperties.HourMetrics.RetentionDays);
Console.WriteLine(serviceProperties.HourMetrics.Version);
Console.WriteLine();
Console.WriteLine("Minute metrics:");
Console.WriteLine(serviceProperties.MinuteMetrics.MetricsLevel);
Console.WriteLine(serviceProperties.MinuteMetrics.RetentionDays);
Console.WriteLine(serviceProperties.MinuteMetrics.Version);

Pokud narazíte na nějaké problémy, najdete informace v tématu řešení potíží se soubory Azure v systému Windows.If you encounter any problems, you can refer to Troubleshoot Azure Files problems in Windows.

Další krokyNext steps

Další informace o službě soubory Azure najdete v následujících zdrojích informací:For more information about Azure Files, see the following resources:

Koncepční články a videaConceptual articles and videos

Podpora nástrojů pro úložiště FileTooling support for File storage

Referenční informaceReference

Příspěvky na blozíchBlog posts