Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

126
Vistas
Comportamiento extraño al guardar un archivo en el almacenamiento de blobs de Azure

Uso los paquetes @azure/storage-blob:^12.8.0, @azure/storage-queue: ^12.7.0 para autenticar y conectarme al almacenamiento de blobs de Azure, la autenticación se realiza a través de identidades administradas y el acceso otorgado al destino con Storage Blob Data Contributor Rol de Storage Blob Data Contributor , a continuación está mi código

 const credentialOptions = { managedIdentityClientId: process.env.MANAGED_IDENTITY_CLIENT_ID }; const CONTAINER_NAME = 'C1'; const credential = new DefaultAzureCredential(credentialOptions); const blobSvc = new BlobServiceClient(process.env.STORAGE_HOST, credential); const containerClient = blobSvc.getContainerClient(CONTAINER_NAME); export const store = async (file: string, folder: string) => { const fileName = path.basename(file); const blob = `${folder}/${fileName}`; try { console.debug(`starting store ${blob}...`); const blobClient = containerClient.getBlockBlobClient(blob); await blobClient.uploadFile(file); console.debug('store done.'); return blob; } catch (err) { console.error(err); throw Error(err); } }; // in other module import {store} from 'BlobStorageHelper'; store('folder1/folder2/folder3', '/temporary/path/to/the/file.jpg');

todo funciona excepto que el archivo está almacenado en el lugar equivocado, por ejemplo, llamando a store('folder1/folder2/folder3', 'path/file.jpg') Espero que el archivo se almacene en folder1/folder2/folder3/file.jpg pero el archivo se almacena en C1/folder1/folder2/folder3/file.jpg C1 es el nombre del contenedor que es incorrecto y no debería suceder, el código se ejecuta como nodo de funciones de Azure.

para que quede claro, la expectativa es

  • C1 (el contenedor)
    • carpeta1
      • carpeta2
        • carpeta3
          • archivo.jpg

pero el resultado real es

  • C1 (el contenedor)
    • C1
      • carpeta1
        • carpeta2
          • carpeta3
            • archivo.jpg

Alguna idea ?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Pruebe con este código, probé este código en mi sistema capaz de almacenar el archivo con estructura de carpetas en un contenedor azul

 const blobServiceClient = BlobServiceClient.fromConnectionString("Connection String"); const containerClient = blobServiceClient.getContainerClient(containerName); const blobName="test1/test2 "+ "/" + "test" const blockBlobClient = containerClient.getBlockBlobClient(blobName); const file="C: \\blobs\\test.txt" await blockBlobClient.uploadFile(file); console.log('\nUploading to Azure storage as blob:\n\t', blobName);

PRODUCCIÓN

ingrese la descripción de la imagen aquí

Los archivos se guardan en un contenedor en Azure Storage

ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza Denunciar

0

El problema era un valor incorrecto proveniente de AppSettings que no era obvio en el código. debería ser https://accountname.blob.core.windows.net pero en su lugar, era https://accountname.blob.core.windows.net/ContainerName .

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda