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

260
Vistas
Problemas al cargar varios archivos en el depósito S3 usando javascript

Hola a todos, quiero cargar varios archivos en Aws S3 usando javascript sdk, estoy usando AngularJs, he escrito el código para cargar un solo archivo y funciona bien, pero el problema que tengo es:

1). Necesito recorrer todos los archivos y cargarlos uno por uno.

2). Estoy asignando un nombre de archivo al archivo que subo. ¿Cómo almacenaré varios nombres de archivo en un solo $scope.var ?

3). Primero tengo que cargar todos los archivos y luego llamar a la función Enviar para llamar a lambda api para enviar mis datos como carga útil json. No puedo llamar a la función de envío en un bucle, ¿cómo voy a lidiar con esto?

Flujo: - Desde un formulario, el usuario seleccionará varios archivos, haga clic en el botón para enviar, primero se llamará a la función de carga a s3 para cargar todos los archivos a s3 y estoy generando los nombres de esos archivos por marcas de tiempo, después de cargar a s3 otra llamada api sucederá y los datos que incluyen todos los datos del formulario + nombres de archivo se enviarán a esa API como carga útil json.

Mi código -

 if($scope.Form.$valid===true){ AWS.config.update({ region: "us-east-2", credentials: new AWS.CognitoIdentityCredentials({ IdentityPoolId: "xxxxxx" }) }); $('#requestButton').html("Submitting..").attr('disabled',true); var s3 = new AWS.S3({ apiVersion: 'xxxx-xx-xx', params: {Bucket: "xxxx"} }); var files = document.getElementById('fileUpload').files; if(files.length == 0){ // $scope.submitForm(data); } if (files){ for (var i = 0; i < files.length; i++){ var file = files[i]; var fileName = file.name.split('.')[i]+new Date().getTime()+"."+file.name.split('.').pop(); data.file= fileName; var filePath = '' + fileName; var fileUrl = 'https://xxxx.amazonaws.com/xxxx/' + filePath; s3.upload({ Key: filePath, Body: file, ACL: 'private' }, function(err, data2) { if(err) { toastr["error"]("Cannot submit your form.", "Failed!"); $('#requestButton').val("Submit").attr('disabled',false); reject('error'); console.log("FAILED") } console.log(data); $scope.submitForm(data); }).on('httpUploadProgress', function (progress) { var uploaded = parseInt((progress.loaded * 100) / progress.total); $("progress").attr('value', uploaded); }); } } }

Mi pregunta es: ¿cómo puedo agregar más nombres de archivos en el objeto data.file y la segunda es dónde debo llamar a submitForm() ? Quiero llamar a la función de formulario de envío solo una vez después de cargar todos los archivos. Por favor, ayúdenme.

about 4 years ago · Juan Pablo Isaza
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