Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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
Visual Studio 2013 o superior. Las instrucciones de este artículo usan Visual Studio 2019.
Una suscripción de Azure. Consulte Obtención de una versión de evaluación gratuita.
Cuenta de Azure Data Lake Storage Gen1. Para obtener instrucciones sobre cómo crear una cuenta, consulte Introducción a Azure Data Lake Storage Gen1.
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.
En Visual Studio, en el menú Archivo, seleccione Nuevo y, a continuación, Proyecto.
Elija Aplicación de consola (.NET Framework)y, a continuación, seleccione Siguiente.
En el nombre del proyecto, escriba
CreateADLApplicationy, a continuación, seleccione Crear.Agregue los paquetes NuGet al proyecto.
Haga clic con el botón derecho en el Explorador de soluciones y haga clic en Administrar paquetes de NuGet.
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.
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.
-
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;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
- Para la autenticación de usuario final para la aplicación, consulte Autenticación de usuario final con Data Lake Storage Gen1 mediante el SDK de .NET.
- Para la autenticación entre servicios para la aplicación, consulte Autenticación entre servicios con Data Lake Storage Gen1 mediante el SDK de .NET.
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
- Operaciones de administración de cuentas en Data Lake Storage Gen1 con el SDK de .NET
- Referencia del SDK de .NET de Data Lake Storage Gen1