Ejemplos de código de Azure Blob Storage mediante bibliotecas de cliente de JavaScript versión 11.x

En este artículo se muestran ejemplos de código que usan la versión 11.x de la biblioteca cliente de Azure Blob Storage para JavaScript.

El 31 de marzo de 2023, se retiró el soporte técnico para las bibliotecas del SDK de Azure que no cumplen las directrices actuales del SDK de Azure. Las nuevas bibliotecas del SDK de Azure se actualizan periódicamente para impulsar experiencias coherentes y reforzar la posición de seguridad. Se recomienda realizar la transición a las nuevas bibliotecas del SDK de Azure para aprovechar las nuevas funcionalidades y las actualizaciones de seguridad críticas.

Aunque las bibliotecas anteriores todavía se pueden usar más allá del 31 de marzo de 2023, ya no recibirán soporte técnico oficial ni actualizaciones de Microsoft. Para obtener más información, consulte el anuncio de retirada de soporte técnico.

Creación de una aplicación de alta disponibilidad con Blob Storage

Artículo relacionado. Tutorial: Creación de una aplicación de alta disponibilidad con Blob Storage

Descarga del ejemplo

Descargue el proyecto de ejemplo y descomprima el archivo. También puede usar git para descargar una copia de la aplicación en el entorno de desarrollo. El proyecto de ejemplo contiene una aplicación básica de Node.js.

git clone https://github.com/Azure-Samples/storage-node-v10-ha-ra-grs.git

Configuración del ejemplo

Para ejecutar este ejemplo, debe agregar las credenciales de la cuenta de almacenamiento al archivo .env.example y cambiarle el nombre por .env.

AZURE_STORAGE_ACCOUNT_NAME=<replace with your storage account name>
AZURE_STORAGE_ACCOUNT_ACCESS_KEY=<replace with your storage account access key>

Puede encontrar esta información en Azure Portal; vaya a la cuenta de almacenamiento y seleccione Claves de acceso en la sección Configuración.

Instale las dependencias necesarias; para ello, abra un símbolo del sistema, vaya a la carpeta de ejemplo y escriba npm install.

Ejecución de la aplicación de consola

Para ejecutar el ejemplo, abra un símbolo del sistema, vaya a la carpeta de ejemplo y escriba node index.js.

El ejemplo crea un contenedor en la cuenta de almacenamiento de blobs, carga HelloWorld.png en el contenedor y comprueba periódicamente si el contenedor y la imagen se han replicado en la región secundaria. Después de la replicación, se le pide que escriba D o Q (seguido de ENTRAR) para descargar o salir. La salida debería similar al siguiente ejemplo:

Created container successfully: newcontainer1550799840726
Uploaded blob: HelloWorld.png
Checking to see if container and blob have replicated to secondary region.
[0] Container has not replicated to secondary region yet: newcontainer1550799840726 : ContainerNotFound
[1] Container has not replicated to secondary region yet: newcontainer1550799840726 : ContainerNotFound
...
[31] Container has not replicated to secondary region yet: newcontainer1550799840726 : ContainerNotFound
[32] Container found, but blob has not replicated to secondary region yet.
...
[67] Container found, but blob has not replicated to secondary region yet.
[68] Blob has replicated to secondary region.
Ready for blob download. Enter (D) to download or (Q) to quit, followed by ENTER.
> D
Attempting to download blob...
Blob downloaded from primary endpoint.
> Q
Exiting...
Deleted container newcontainer1550799840726

Descripción del ejemplo de código

Con el SDK de Node.js V10, los controladores de devolución de llamada son innecesarios. En su lugar, el ejemplo crea una canalización que se configura con opciones de reintento y un punto de conexión secundario. Esta configuración permite que la aplicación cambie automáticamente a la canalización secundaria si se produce un error al acceder a los datos mediante la canalización principal.

const accountName = process.env.AZURE_STORAGE_ACCOUNT_NAME;
const storageAccessKey = process.env.AZURE_STORAGE_ACCOUNT_ACCESS_KEY;
const sharedKeyCredential = new SharedKeyCredential(accountName, storageAccessKey);

const primaryAccountURL = `https://${accountName}.blob.core.windows.net`;
const secondaryAccountURL = `https://${accountName}-secondary.blob.core.windows.net`;

const pipeline = StorageURL.newPipeline(sharedKeyCredential, {
  retryOptions: {
    maxTries: 3,
    tryTimeoutInMs: 10000,
    retryDelayInMs: 500,
    maxRetryDelayInMs: 1000,
    secondaryHost: secondaryAccountURL
  }
});