Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

177
Visualizações
Cómo depurar el error InvalidArgument en deleteObjects usando aws-sdk para nodeJs

Actualmente estoy usando aws-sdk en la versión ^ 2.962.0 en una aplicación nodeJS en la que estoy trabajando para conectarme a un depósito de Google Cloud Storage y eliminar archivos, pero recibo el error "Argumento no válido: argumento no válido".

obs: el proyecto en el que estoy trabajando actualmente solía trabajar con AWS S3 pero migró a GCS, por lo que estamos usando las soluciones de migración de AWS a GSC por ahora. Otros métodos y librerías funcionan bien.

Aquí hay parte del código donde estoy usando el método deleteObjects:

 import { S3 } from 'aws-sdk'; const s3 = new S3({ accessKeyId: process.env.S3_ACCESS_KEY, secretAccessKey: process.env.S3_SECRET, endpoint: process.env.S3_ENDPOINT, logger: console } const bucket = process.env.S3_BUCKET_FILES; const folderPath = 'someFolder/'; try{ const objectsKeys: Array<any> = []; const objectsList = await s3.listObjects( { Bucket: bucket, Delimiter: '/', Prefix: folderPath } ).promise(); objectsList.Contents.forEach( ( file ) => { const objectKey = file.Key; if ( objectKey === folderPath ) { return; } objectsKeys.push( { Key: objectKey } ); } ); await s3.deleteObjects( { //<< There seems to be some error of argument Bucket: bucket, Delete: { Objects: objectsKeys } } ).promise(); } catch(err){ console.log(err) }

Probé todo tipo de configuraciones al pasar los parámetros al método s3.deleteObjects pero no puedo evitar el error:

 //AWS logs and error [AWS s3 200 0.378s 0 retries] listObjects({ Bucket: 'myBucket-files', Delimiter: '/', Prefix: 'testFolder/' }) [AWS s3 400 0.216s 0 retries] deleteObjects({ Bucket: 'myBucket-files', Delete: { Objects: [ { Key: 'testFolder/e96ab708dab513e6c00ff21afbf02773' }, [length]: 1 ] } }) InvalidArgument: Invalid argument. at Request.extractError (C:\...) { // all the path until the error at the package folder code: 'InvalidArgument', region: null, time: 2021-12-29T20:34:04.924Z, requestId: null, extendedRequestId: undefined, cfId: undefined, statusCode: 400, retryable: false, retryDelay: 94.12732588991155 }

¿Alguien sabe alguna forma de extraer el argumento exacto en tales casos o de obtener un registro de los parámetros esperados y entregarlos para poder compararlos? Me las arreglé para activar la configuración del registrador en la instancia del cliente S3 como sugiere la documentación, pero no parece ser más preciso en la depuración. ¿Alguien puede detectar el error?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Parece que Google Cloud Storage no es compatible con algunas de las funciones de aws sdk, incluido deleteObjects. Esta respuesta discute un poco más sobre este tema. Aún así, no encontré ninguna otra forma "fácil" de depurar este tipo de error InvalidArgument.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda