Поделиться через


Операции файловой системы с Data Lake Storage 1-го поколения с помощью пакета SDK для .NET

Из этой статьи вы узнаете, как выполнять операции файловой системы с Data Lake Storage 1-го поколения с помощью пакета SDK для .NET. К операциям файловой системы относятся операции создания папок в учетной записи Data Lake Storage 1-го поколения, передачи файлов, скачивания файлов и т. д.

Инструкции по выполнению операций управления учетными записями в Data Lake Storage 1-го поколения с помощью пакета SDK для .NET см. в статье Операции управления учетными записями в Data Lake Storage 1-го поколения с помощью пакета SDK для .NET.

Предварительные требования

Создание приложения .NET

На сайте GitHub доступен пример кода, который используется для создания файлов в хранилище, объединения и скачивания файлов, а также для удаления файлов из хранилища. В этом разделе статьи рассматриваются основные части этого кода.

  1. В Visual Studio откройте меню Файл и выберите Создать, а затем — Проект.

  2. Выберите Console App (.NET Framework) (Консольное приложение (.NET Framework)), а затем нажмите кнопкуДалее.

  3. В окнеИмя проекта введите CreateADLApplication, а затем выберите Создать.

  4. Добавьте пакеты NuGet в проект.

    1. В обозревателе решений щелкните правой кнопкой мыши имя проекта и выберите пункт Управление пакетами NuGet.

    2. На вкладке Диспетчер пакетов NuGet убедитесь, что для параметра Источник пакета задано значение nuget.org. Кроме того, убедитесь, что установлен флажок Включить предварительные выпуски проверка.

    3. Найдите и установите следующие пакеты NuGet:

      • Microsoft.Azure.DataLake.Store — В этой статье используется версия 1.0.0.
      • Microsoft.Rest.ClientRuntime.Azure.Authentication — В этой статье используется версия 2.3.1.

      Закройте Диспетчер пакетов NuGet.

  5. Откройте файл Program.cs, удалите существующий код и включите следующие инструкции, чтобы добавить ссылки на пространства имен.

    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. Объявите переменные, как показано ниже, и укажите значения вместо заполнителей. Кроме того, убедитесь, что локальный путь и имя файла, которые вы указываете, имеются на компьютере.

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

В остальных разделах этой статьи вы узнаете, как использовать доступные методы .NET для выполнения таких операций, как проверка подлинности, отправка файлов и т. д.

Аутентификация

Создание клиентского объекта

Следующий фрагмент кода создает клиентский объект файловой системы Data Lake Storage 1-го поколения, который используется для передачи запросов к службе.

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

Создание файла и каталога

Добавьте в приложение указанный ниже фрагмент кода. Этот фрагмент кода добавляет файл и любой родительский каталог, который не существует.

// 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);
}

Добавление данных в файл

Следующий фрагмент кода добавляет данные в имеющийся файл в учетной записи Data Lake Storage 1-го поколения.

// 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);
}

Чтение файла

Следующий фрагмент кода считывает содержимое файла в Data Lake Storage 1-го поколения.

//Read file contents

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

Получение свойств файла

Следующий фрагмент кода возвращает свойства, связанные с файлом или каталогом.

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

Определение метода доступно в PrintDirectoryEntry примере на сайте GitHub.

Переименуйте файл

Следующий фрагмент кода переименовывает имеющийся файл в учетной записи Data Lake Storage 1-го поколения.

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

Перечисление каталогов

В следующем фрагменте кода перечислены каталоги в учетной записи Data Lake Storage 1-го поколения.

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

Определение метода доступно в PrintDirectoryEntry примере на сайте GitHub.

Рекурсивное удаление каталогов

Следующий фрагмент кода рекурсивно удаляет каталог и все его подкаталоги.

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

Примеры

Ниже приведено несколько примеров, в которых показано, как использовать пакет SDK файловой системы Data Lake Storage 1-го поколения.

См. также раздел

Дальнейшие действия