Операции файловой системы с 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.
Предварительные требования
Visual Studio 2013 или более поздней версии. Инструкции в этой статье используют Visual Studio 2019.
Подписка Azure. См. страницу бесплатной пробной версии Azure.
Учетная запись Azure Data Lake Storage 1-го поколения. Инструкции по созданию учетной записи см. в статье Начало работы с Azure Data Lake Storage 1-го поколения.
Создание приложения .NET
На сайте GitHub доступен пример кода, который используется для создания файлов в хранилище, объединения и скачивания файлов, а также для удаления файлов из хранилища. В этом разделе статьи рассматриваются основные части этого кода.
В Visual Studio откройте меню Файл и выберите Создать, а затем — Проект.
Выберите Console App (.NET Framework) (Консольное приложение (.NET Framework)), а затем нажмите кнопкуДалее.
В окнеИмя проекта введите
CreateADLApplication
, а затем выберите Создать.Добавьте пакеты NuGet в проект.
В обозревателе решений щелкните правой кнопкой мыши имя проекта и выберите пункт Управление пакетами NuGet.
На вкладке Диспетчер пакетов NuGet убедитесь, что для параметра Источник пакета задано значение nuget.org. Кроме того, убедитесь, что установлен флажок Включить предварительные выпуски проверка.
Найдите и установите следующие пакеты NuGet:
-
Microsoft.Azure.DataLake.Store
— В этой статье используется версия 1.0.0. -
Microsoft.Rest.ClientRuntime.Azure.Authentication
— В этой статье используется версия 2.3.1.
Закройте Диспетчер пакетов NuGet.
-
Откройте файл 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;
Объявите переменные, как показано ниже, и укажите значения вместо заполнителей. Кроме того, убедитесь, что локальный путь и имя файла, которые вы указываете, имеются на компьютере.
namespace SdkSample { class Program { private static string _adlsg1AccountName = "<DATA-LAKE-STORAGE-GEN1-NAME>.azuredatalakestore.net"; } }
В остальных разделах этой статьи вы узнаете, как использовать доступные методы .NET для выполнения таких операций, как проверка подлинности, отправка файлов и т. д.
Аутентификация
- Дополнительные сведения о проверке подлинности пользователей в приложении см. в статье Аутентификация пользователей в Data Lake Store с помощью пакета SDK для .NET.
- Дополнительные сведения о проверке подлинности между службами в приложении см. в статье Аутентификация между службами в Data Lake Store с помощью пакета SDK для .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-го поколения.
См. также раздел
- Операции управления учетными записями в Data Lake Storage 1-го поколения c использованием пакета SDK для .NET
- Библиотеки Azure Data Lake Store для .NET