Compartir a través de


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 del sistema de archivos incluyen la creación de carpetas en una cuenta de Data Lake Storage Gen1, la carga de archivos, la descarga de archivos, etc.

Para obtener 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 mediante el SDK de .NET.

Prerrequisitos

Creación de una aplicación .NET

El ejemplo de código disponible en GitHub le guía por el 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 por las partes principales 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. Además, asegúrese de que la casilla Incluir versión preliminar está activada.

    3. Busque e instale los siguientes paquetes NuGet:

      • Microsoft.Azure.DataLake.Store - En este artículo se usa v1.0.0.
      • Microsoft.Rest.ClientRuntime.Azure.Authentication - En 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 muestra 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 proporcione aquí 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.

Autenticación

Creación de un objeto de cliente

El fragmento de código siguiente crea el objeto cliente del sistema de archivos de Data Lake Storage Gen1, que se usa 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 la 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);
}

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

Obtener propiedades de 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 PrintDirectoryEntry método está disponible como parte del ejemplo en GitHub.

Cambiar el nombre de un archivo

El siguiente fragmento de código 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);

Enumerar un directorio

En el fragmento de código siguiente se enumeran los directorios de una cuenta de Data Lake Storage Gen1.

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

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

Eliminar 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");

Muestras

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

Consulte también

Pasos siguientes