Inicio rápido: Administración de blobs con el SDK de Java v12
En este inicio rápido, aprenderá a administrar blobs mediante Java. Los blobs son objetos que pueden contener grandes cantidades de texto o datos binarios, como imágenes, documentos, medios de transmisión y datos de archivo. Cargará, descargará y enumerará los blobs, y creará y eliminará los contenedores.
Recursos adicionales:
Requisitos previos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Una cuenta de Azure Storage. Crear una cuenta de almacenamiento.
- Kit de desarrollo de Java (JDK), versión 8 o posterior.
- Apache Maven.
Instalación
En esta sección se explica cómo preparar un proyecto para que funcione con la biblioteca cliente de Azure Blob Storage v12 para Java.
Creación del proyecto
Cree una aplicación de Java llamada blob-quickstart-v12.
En una ventana de consola (por ejemplo, cmd, PowerShell o Bash), use Maven para crear una nueva aplicación de consola con el nombre blob-quickstart-v12. Escriba el siguiente comando mvn para crear un proyecto "Hola mundo" sencillo de Java.
mvn archetype:generate ` --define interactiveMode=n ` --define groupId=com.blobs.quickstart ` --define artifactId=blob-quickstart-v12 ` --define archetypeArtifactId=maven-archetype-quickstart ` --define archetypeVersion=1.4La salida a partir de la generación del proyecto debe ser similar a la siguiente:
[INFO] Scanning for projects... [INFO] [INFO] ------------------< org.apache.maven:standalone-pom >------------------- [INFO] Building Maven Stub Project (No POM) 1 [INFO] --------------------------------[ pom ]--------------------------------- [INFO] [INFO] >>> maven-archetype-plugin:3.1.2:generate (default-cli) > generate-sources @ standalone-pom >>> [INFO] [INFO] <<< maven-archetype-plugin:3.1.2:generate (default-cli) < generate-sources @ standalone-pom <<< [INFO] [INFO] [INFO] --- maven-archetype-plugin:3.1.2:generate (default-cli) @ standalone-pom --- [INFO] Generating project in Batch mode [INFO] ---------------------------------------------------------------------------- [INFO] Using following parameters for creating project from Archetype: maven-archetype-quickstart:1.4 [INFO] ---------------------------------------------------------------------------- [INFO] Parameter: groupId, Value: com.blobs.quickstart [INFO] Parameter: artifactId, Value: blob-quickstart-v12 [INFO] Parameter: version, Value: 1.0-SNAPSHOT [INFO] Parameter: package, Value: com.blobs.quickstart [INFO] Parameter: packageInPathFormat, Value: com/blobs/quickstart [INFO] Parameter: version, Value: 1.0-SNAPSHOT [INFO] Parameter: package, Value: com.blobs.quickstart [INFO] Parameter: groupId, Value: com.blobs.quickstart [INFO] Parameter: artifactId, Value: blob-quickstart-v12 [INFO] Project created from Archetype in dir: C:\QuickStarts\blob-quickstart-v12 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 7.056 s [INFO] Finished at: 2019-10-23T11:09:21-07:00 [INFO] ------------------------------------------------------------------------ ```Switch to the newly created blob-quickstart-v12 folder.
cd blob-quickstart-v12En el directorio blob-quickstart-v12, cree otro directorio denominado data. Aquí es donde se crearán y almacenarán los archivos de datos de blobs.
mkdir data
Instalar el paquete
Abra el archivo pom.xml en el editor de texto. Agregue el siguiente elemento de dependencia al grupo de dependencias.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-blob</artifactId>
<version>12.13.0</version>
</dependency>
Instalación del marco de la aplicación
Desde el directorio del proyecto:
- Navegue al directorio /src/main/java/com/blobs/quickstart.
- Abra el archivo App.java en el editor.
- Eliminar la instrucción
System.out.println("Hello world!");. - Agregue directivas
import.
Este es el código:
package com.blobs.quickstart;
/**
* Azure blob storage v12 SDK quickstart
*/
import com.azure.storage.blob.*;
import com.azure.storage.blob.models.*;
import java.io.*;
public class App
{
public static void main( String[] args ) throws IOException
{
}
}
Copia de las credenciales desde Azure Portal
Cuando la aplicación de ejemplo realiza una solicitud a Azure Storage, debe estar autorizada. Para autorizar una solicitud, agregue a la aplicación las credenciales de la cuenta de almacenamiento en forma de cadena de conexión. Para ver las credenciales de la cuenta de almacenamiento, siga estos pasos:
Inicie sesión en Azure Portal.
Busque su cuenta de almacenamiento.
En el panel del menú de la cuenta de almacenamiento, en Seguridad y redes, seleccione Claves de acceso. Aquí puede ver las claves de acceso de la cuenta, así como la cadena de conexión completa de cada clave.

En el panel Claves acceso, seleccione Mostrar claves.
En la sección key1, busque el valor de Cadena de conexión. Seleccione el icono Copiar al portapapeles para copiar la cadena de conexión. En la siguiente sección, agregará el valor de la cadena de conexión a una variable de entorno.

Configuración de la cadena de conexión de almacenamiento.
Una vez que haya copiado la cadena de conexión, escríbala en una variable de entorno nueva en la máquina local que ejecuta la aplicación. Para establecer la variable de entorno, abra una ventana de consola y siga las instrucciones de su sistema operativo. Reemplace <yourconnectionstring> por la cadena de conexión real.
Windows
setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"
Después de agregar la variable de entorno en Windows, debe iniciar una nueva instancia de la ventana de comandos.
Linux
export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"
macOS
export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"
Reiniciar programas
Después de agregar la variable de entorno, reinicie todos los programas en ejecución que necesiten leer esta variable. Por ejemplo, reinicie el entorno de desarrollo o el editor antes de continuar.
Modelo de objetos
Azure Blob Storage está optimizado para el almacenamiento de cantidades masivas de datos no estructurados. Los datos no estructurados son datos que no cumplen un modelo de datos o definición concreta, como texto o datos binarios. Blob Storage ofrece tres tipos de recursos:
- La cuenta de almacenamiento
- Un contenedor en la cuenta de almacenamiento
- Un blob en el contenedor
En el siguiente diagrama se muestra la relación entre estos recursos.

Use las siguientes clases de Java para interactuar con estos recursos:
- BlobServiceClient: La clase
BlobServiceClientpermite manipular recursos de Azure Storage y contenedores de blobs. La cuenta de almacenamiento proporciona el espacio de nombres de nivel superior para el Blob service. - La clase proporciona una API de generador fluida que ayuda a la configuración y la creación de instancias de objetos .
- BlobContainerClient: La clase
BlobContainerClientpermite manipular contenedores de Azure Storage y sus blobs. - La clase [ permite manipular los blobs de Azure Storage.
- BlobItem: La clase
BlobItemrepresenta los blobs individuales devueltos por una llamada a listBlobs.
Ejemplos de código
Estos fragmentos de código de ejemplo muestran cómo realizar las siguientes acciones con la biblioteca cliente de Azure Blob Storage para Java:
- Obtención de la cadena de conexión
- Creación de un contenedor
- Carga de los blobs en un contenedor
- Enumeración de los blobs de un contenedor
- Descarga de los blobs
- Eliminación de un contenedor
Obtención de la cadena de conexión
El código siguiente recupera la cadena de conexión de la cuenta de almacenamiento de la variable de entorno creada en la sección Configuración de la cadena de conexión de almacenamiento.
Agregue este código dentro del método Main:
System.out.println("Azure Blob Storage v12 - Java quickstart sample\n");
// Retrieve the connection string for use with the application. The storage
// connection string is stored in an environment variable on the machine
// running the application called AZURE_STORAGE_CONNECTION_STRING. If the environment variable
// is created after the application is launched in a console or with
// Visual Studio, the shell or application needs to be closed and reloaded
// to take the environment variable into account.
String connectStr = System.getenv("AZURE_STORAGE_CONNECTION_STRING");
Crear un contenedor
Decida un nombre para el nuevo contenedor. El código siguiente anexa un valor de UUID al nombre de contenedor para asegurarse de que sea único.
Importante
Los nombres de contenedor deben estar en minúsculas. Para más información acerca de los contenedores de nomenclatura y los blobs, consulte Naming and Referencing Containers, Blobs, and Metadata (Asignación de nombres y realización de referencias a contenedores, blobs y metadatos).
A continuación, cree una instancia de la clase BlobContainerClient y, a continuación, llame al método create para crear realmente el contenedor en la cuenta de almacenamiento.
Agregue este código al final del método Main:
// Create a BlobServiceClient object which will be used to create a container client
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder().connectionString(connectStr).buildClient();
//Create a unique name for the container
String containerName = "quickstartblobs" + java.util.UUID.randomUUID();
// Create the container and return a container client object
BlobContainerClient containerClient = blobServiceClient.createBlobContainer(containerName);
Carga de los blobs en un contenedor
El siguiente fragmento de código:
- Crea un archivo de texto en el directorio data local.
- Obtiene una referencia a un objeto BlobClient llamando al método getBlobClient en el contenedor de la sección Crear un contenedor.
- Carga el archivo de texto local en el blob llamando al método uploadFromFile. Este método crea el blob si no existe aún, pero no lo sobrescribirá en caso de que ya exista.
Agregue este código al final del método Main:
// Create a local file in the ./data/ directory for uploading and downloading
String localPath = "./data/";
String fileName = "quickstart" + java.util.UUID.randomUUID() + ".txt";
File localFile = new File(localPath + fileName);
// Write text to the file
FileWriter writer = new FileWriter(localPath + fileName, true);
writer.write("Hello, World!");
writer.close();
// Get a reference to a blob
BlobClient blobClient = containerClient.getBlobClient(fileName);
System.out.println("\nUploading to Blob storage as blob:\n\t" + blobClient.getBlobUrl());
// Upload the blob
blobClient.uploadFromFile(localPath + fileName);
Enumerar los blobs de un contenedor
Enumere los blobs en el contenedor llamando al método listBlobs. En este caso, solo se ha agregado un blob al contenedor, por lo que la operación de enumeración devuelve simplemente dicho blob.
Agregue este código al final del método Main:
System.out.println("\nListing blobs...");
// List the blob(s) in the container.
for (BlobItem blobItem : containerClient.listBlobs()) {
System.out.println("\t" + blobItem.getName());
}
Descargar blobs
Descargue el blob creado previamente llamando al método downloadToFile. El código de ejemplo agrega el sufijo "DOWNLOAD" al nombre de archivo para que pueda ver ambos archivos en el sistema de archivos local.
Agregue este código al final del método Main:
// Download the blob to a local file
// Append the string "DOWNLOAD" before the .txt extension so that you can see both files.
String downloadFileName = fileName.replace(".txt", "DOWNLOAD.txt");
File downloadedFile = new File(localPath + downloadFileName);
System.out.println("\nDownloading blob to\n\t " + localPath + downloadFileName);
blobClient.downloadToFile(localPath + downloadFileName);
Eliminación de un contenedor
El código siguiente limpia los recursos que creó la aplicación; para ello, quita todo el contenedor con el método delete. También elimina los archivos locales creados por la aplicación.
La aplicación se detiene para la entrada del usuario mediante una llamada a System.console().readLine() antes de eliminar el blob, el contenedor y los archivos locales. Esta es una buena oportunidad para verificar que los recursos se han creado correctamente antes de eliminarlos.
Agregue este código al final del método Main:
// Clean up
System.out.println("\nPress the Enter key to begin clean up");
System.console().readLine();
System.out.println("Deleting blob container...");
containerClient.delete();
System.out.println("Deleting the local source and downloaded files...");
localFile.delete();
downloadedFile.delete();
System.out.println("Done");
Ejecución del código
Esta aplicación crea un archivo de prueba en la carpeta local y lo carga en Blob Storage. Después, en el ejemplo se enumeran los blobs del contenedor y se descarga el archivo con un nombre nuevo para que pueda comparar los archivos antiguo y nuevo.
Navegue hasta el directorio que contiene el archivo pom.xml y compile el proyecto mediante el siguiente comando mvn.
mvn compile
A continuación, compile el paquete.
mvn package
Ejecute el siguiente comando mvn para ejecutar la aplicación.
mvn exec:java -Dexec.mainClass="com.blobs.quickstart.App" -Dexec.cleanupDaemonThreads=false
La salida de la aplicación es similar a la del ejemplo siguiente:
Azure Blob Storage v12 - Java quickstart sample
Uploading to Blob storage as blob:
https://mystorageacct.blob.core.windows.net/quickstartblobsf9aa68a5-260e-47e6-bea2-2dcfcfa1fd9a/quickstarta9c3a53e-ae9d-4863-8b34-f3d807992d65.txt
Listing blobs...
quickstarta9c3a53e-ae9d-4863-8b34-f3d807992d65.txt
Downloading blob to
./data/quickstarta9c3a53e-ae9d-4863-8b34-f3d807992d65DOWNLOAD.txt
Press the Enter key to begin clean up
Deleting blob container...
Deleting the local source and downloaded files...
Done
Antes de comenzar a limpiar el proceso, compruebe la carpeta data para los dos archivos. Puede abrirlos y ver que son idénticos.
Después de haber comprobado los archivos, presione la tecla Entrar para eliminar los archivos de prueba y terminar la demostración.
Pasos siguientes
En esta guía de inicio rápido, ha aprendido a cargar, descargar y enumerar blobs mediante Java.
Para ver las aplicaciones de ejemplo de Blob Storage, siga estos pasos:
- Para más información, consulte el SDK de Azure para Java.
- Para ver tutoriales, ejemplos, artículos de inicio rápido y otra documentación, visite Azure para desarrolladores de nube de Java.