En realidad, desde mi aplicación generarán muchos archivos zip y los cargarán en el depósito s3.
El nombre de los archivos zip será como dfghgghg5565hgghghgh55.zip, fdfdfdfd44545ghghghg.zip. Puede ser cualquier nombre.
Entonces, ¿cómo descargar esos archivos zip según la extensión del archivo (.zip)?
Si conoce el depósito en el que está trabajando, puede llamar a ListObjects o ListObjectsv2 en ese depósito para obtener hasta 1000 objetos de él.
http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#listObjects-property
var params = { Bucket: 'STRING_VALUE', /* required */ Delimiter: 'STRING_VALUE', EncodingType: url, Marker: 'STRING_VALUE', MaxKeys: 0, Prefix: 'STRING_VALUE', RequestPayer: requester }; s3.listObjects(params, function(err, data) { if (err) console.log(err, err.stack); // an error occurred else console.log(data); // successful response // put code here to filter out just the .zips, then you can request those files with a GetObject() request });Puede llamar a su función lambda manualmente siempre que desee obtener información sobre nuevos archivos. Con este código siempre obtendrá el último archivo modificado/creado.
s3.listObjects(params, function (err, data) { if (err) console.log(err, err.stack); // an error occurred var sortArray; data.Contents.sort(function(a,b) { return (b.LastModified > a.LastModified) ? 1 : ((a.LastModified > b.LastModified) ? -1 : 0); }); for(var file of data.Contents){ if (file.Key.endsWith('.zip')) { //extractData(file.Key); break; } }Pero podemos tener un problema como este, si no se crea ningún archivo nuevo, sucederá que se extrae el mismo archivo más de una vez. Más adelante sugiero que use el archivo para eliminar o busque otra forma de identificar que ese archivo ya se ha usado.
¡Espero que te haya ayudado!