Operaciones del sistema de archivos en Data Lake Storage Gen1 mediante el SDK de .NET

En este artículo, aprenderá a realizar operaciones del sistema de archivos en Data Lake Storage Gen1 mediante el SDK de .NET. Las operaciones de sistema de archivos incluyen, por ejemplo, la creación de carpetas en una cuenta de Data Lake Storage Gen1 o la carga y descarga de archivos.

Para instrucciones sobre cómo realizar operaciones de administración de cuentas en Data Lake Storage Gen1 mediante el SDK de .NET, consulte Operaciones de administración de cuentas en Data Lake Storage Gen1 con el SDK de .NET.

Prerrequisitos

Creación de una aplicación .NET

El ejemplo de código disponible en GitHub le guía a través del proceso de creación de archivos en el almacén, concatenación de archivos, descarga de un archivo y eliminación de algunos archivos en el almacén. Esta sección del artículo le guía a través de las principales partes del código.

  1. En Visual Studio, en el menú Archivo, seleccione Nuevo y, a continuación, Proyecto.

  2. Elija Aplicación de consola (.NET Framework) y, a continuación, seleccione Siguiente.

  3. En el nombre del proyecto, escriba CreateADLApplication y, a continuación, seleccione Crear.

  4. Agregue los paquetes NuGet al proyecto.

    1. Haga clic con el botón derecho en el Explorador de soluciones y haga clic en Administrar paquetes de NuGet.

    2. En la pestaña Administrador de paquetes NuGet, asegúrese de que el Origen del paquete esté establecido en nuget.org. Asegúrese de que la casilla Incluir versión preliminar esté activada.

    3. Busque e instale los siguientes paquetes NuGet:

      • Microsoft.Azure.DataLake.Store Este artículo se usa v 1.0.0.
      • Microsoft.Rest.ClientRuntime.Azure.Authentication Este artículo se usa v2.3.1.

      Cierre el Administrador de paquetes NuGet.

  5. Abra Program.cs, elimine el código existente e incluya las siguientes instrucciones para agregar referencias a espacios de nombres.

    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. Declare las variables como se indica a continuación y proporcione los valores de los marcadores de posición. Además, asegúrese de que la ruta de acceso local y el nombre de archivo que proporciona existen en el equipo.

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

En las secciones restantes del artículo, puede ver cómo usar los métodos de .NET disponibles para realizar operaciones como la autenticación, la carga de archivos, etc.

Authentication

Creación del objeto de cliente

El fragmento de código siguiente crea los objetos de cliente del sistema de archivos de Data Lake Storage Gen1, que se usan para emitir solicitudes al servicio.

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

Creación de un archivo y un directorio

Agregue el siguiente fragmento de código a su aplicación. Este fragmento de código agrega un archivo y cualquier directorio primario que no exista.

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

Anexión a un archivo

El fragmento de código siguiente anexa datos a un archivo existente en la cuenta de 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);
}

Lectura de un archivo

El fragmento de código siguiente lee el contenido de un archivo en 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);
    }
}

Obtención de las propiedades del archivo

El fragmento de código siguiente devuelve las propiedades asociadas a un archivo o un directorio.

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

La definición del método PrintDirectoryEntry está disponible como parte del ejemplo en GitHub.

Cambio del nombre de un archivo

El fragmento de código siguiente cambia el nombre de un archivo existente en una cuenta de Data Lake Storage Gen1.

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

Enumeración de un directorio

El fragmento de código siguiente enumera los directorios en una cuenta de Data Lake Storage Gen1.

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

La definición del método PrintDirectoryEntry está disponible como parte del ejemplo en GitHub.

Eliminación de directorios de forma recursiva

El fragmento de código siguiente elimina un directorio y todos sus subdirectorios, de forma recursiva.

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

Ejemplos

Estos son algunos ejemplos que muestran cómo usar el SDK del sistema de archivos Data Lake Storage Gen1.

Consulte también

Pasos siguientes