Operacje systemu plików na Data Lake Storage Gen1 przy użyciu zestawu SDK platformy .NET

W tym artykule dowiesz się, jak wykonywać operacje systemu plików na Data Lake Storage Gen1 przy użyciu zestawu SDK platformy .NET. Operacje systemu plików obejmują tworzenie folderów na koncie Data Lake Storage Gen1, przekazywanie plików, pobieranie plików itp.

Aby uzyskać instrukcje dotyczące wykonywania operacji zarządzania kontami na Data Lake Storage Gen1 przy użyciu zestawu SDK platformy .NET, zobacz Operacje zarządzania kontami na Data Lake Storage Gen1 przy użyciu zestawu .NET SDK.

Wymagania wstępne

Tworzenie aplikacji .NET

Przykładowy kod dostępny w usłudze GitHub przeprowadzi Cię przez proces tworzenia plików w magazynie, łączenia plików, pobierania pliku i usuwania niektórych plików z magazynu. Ta część artykułu przeprowadzi Cię przez najważniejsze fragmenty kodu.

  1. W programie Visual Studio wybierz menu Plik , Nowy, a następnie pozycję Projekt.

  2. Wybierz pozycję Aplikacja konsolowa (.NET Framework), a następnie wybierz pozycję Dalej.

  3. W polu Nazwa projektu wprowadź , CreateADLApplicationa następnie wybierz pozycję Utwórz.

  4. Dodaj pakiety NuGet do swojego projektu.

    1. Kliknij prawym przyciskiem myszy nazwę projektu w Eksploratorze rozwiązań i kliknij polecenie Zarządzaj pakietami NuGet.

    2. Na karcie Menedżer pakietów NuGet upewnij się, że dla źródła pakietu ustawiono wartość nuget.org. Upewnij się również, że pole wyboru Uwzględnij wersję wstępną zostało zaznaczone.

    3. Wyszukaj i zainstaluj następujące pakiety NuGet:

      • Microsoft.Azure.DataLake.Store — W tym artykule jest używana wersja 1.0.0.
      • Microsoft.Rest.ClientRuntime.Azure.Authentication — W tym artykule jest używana wersja 2.3.1.

      Zamknij Menedżera pakietów NuGet.

  5. Otwórz plik Program.cs, usuń istniejący kod, a następnie dołącz poniższe instrukcje, aby dodać odwołania do przestrzeni nazw.

    using System;
    using System.IO;using System.Threading;
    using System.Linq;
    using System.Text;
    using System.Collections.Generic;
    using System.Security.Cryptography.X509Certificates; // Required only if you're using an Azure AD application created with certificates
    
    using Microsoft.Rest;
    using Microsoft.Rest.Azure.Authentication;
    using Microsoft.Azure.DataLake.Store;
    using Microsoft.IdentityModel.Clients.ActiveDirectory;
    
  6. Zadeklaruj zmienne w pokazany poniżej sposób i podaj wartości dla symboli zastępczych. Upewnij się również, że podana tutaj ścieżka lokalna i nazwa pliku istnieją na komputerze.

    namespace SdkSample
    {
        class Program
        {
            private static string _adlsg1AccountName = "<DATA-LAKE-STORAGE-GEN1-NAME>.azuredatalakestore.net";
        }
    }
    

W pozostałych sekcjach artykułu można zobaczyć, jak używać dostępnych metod platformy .NET do wykonywania operacji, takich jak uwierzytelnianie, przekazywanie plików itp.

Authentication

Tworzenie obiektu klienta

Poniższy fragment kodu tworzy obiekt klienta systemu plików Data Lake Storage Gen1, który służy do wystawiania żądań do usługi.

// Create client objects
AdlsClient client = AdlsClient.CreateClient(_adlsg1AccountName, adlCreds);

Tworzenie plików i katalogów

Dodaj poniższy fragment kodu do aplikacji. Ten fragment kodu dodaje plik i dowolny katalog nadrzędny, który nie istnieje.

// Create a file - automatically creates any parent directories that don't exist
// The AdlsOutputStream preserves record boundaries - it does not break records while writing to the store

using (var stream = client.CreateFile(fileName, IfExists.Overwrite))
{
    byte[] textByteArray = Encoding.UTF8.GetBytes("This is test data to write.\r\n");
    stream.Write(textByteArray, 0, textByteArray.Length);

    textByteArray = Encoding.UTF8.GetBytes("This is the second line.\r\n");
    stream.Write(textByteArray, 0, textByteArray.Length);
}

Dołączanie do pliku

Poniższy fragment kodu dołącza dane do istniejącego pliku na koncie Data Lake Storage Gen1.

// Append to existing file

using (var stream = client.GetAppendStream(fileName))
{
    byte[] textByteArray = Encoding.UTF8.GetBytes("This is the added line.\r\n");
    stream.Write(textByteArray, 0, textByteArray.Length);
}

Odczytywanie pliku

Poniższy fragment kodu odczytuje zawartość pliku w Data Lake Storage Gen1.

//Read file contents

using (var readStream = new StreamReader(client.GetReadStream(fileName)))
{
    string line;
    while ((line = readStream.ReadLine()) != null)
    {
        Console.WriteLine(line);
    }
}

Pobieranie właściwości pliku

Poniższy fragment kodu zwraca właściwości skojarzone z plikiem lub katalogiem.

// Get file properties
var directoryEntry = client.GetDirectoryEntry(fileName);
PrintDirectoryEntry(directoryEntry);

Definicja PrintDirectoryEntry metody jest dostępna w ramach przykładu w usłudze GitHub.

Zmienianie nazwy pliku

Poniższy fragment kodu zmienia nazwę istniejącego pliku na koncie Data Lake Storage Gen1.

// Rename a file
string destFilePath = "/Test/testRenameDest3.txt";
client.Rename(fileName, destFilePath, true);

Wyliczanie katalogu

Poniższy fragment kodu wylicza katalogi na koncie Data Lake Storage Gen1.

// Enumerate directory
foreach (var entry in client.EnumerateDirectory("/Test"))
{
    PrintDirectoryEntry(entry);
}

Definicja PrintDirectoryEntry metody jest dostępna w ramach przykładu w usłudze GitHub.

Rekursywne usuwanie katalogów

Poniższy fragment kodu usuwa katalog i wszystkie jego podkatalogi, rekursywnie.

// Delete a directory and all its subdirectories and files
client.DeleteRecursive("/Test");

Przykłady

Poniżej przedstawiono kilka przykładów, które pokazują, jak używać zestawu SDK systemu plików Data Lake Storage Gen1.

Zobacz też

Następne kroki