La carga de amazon s3 está tomando tiempo.
Estoy intentando subir un archivo a S3, antes de eso estoy modificando el nombre del archivo. Ahora estoy aceptando 2 archivos del objeto de form-data de la solicitud, renombrando el nombre de archivo y subiendo el archivo a S3. Al final de la tarea, necesito devolver la lista de archivos renombrados que se han cargado correctamente.
Estoy utilizando la función S3.upload(). Pero el problema es, la variable que se asigna como matriz vacía inicialmente, que contendrá la lista de archivos renombrados, devuelve una respuesta vacía. La función s3.upload() está tardando mucho tiempo. ¿Hay alguna solución probable donde pueda almacenar el nombre del archivo si la carga es exitosa y devolver esos nombres en la respuesta?
Por favor, ayúdame a solucionar esto. El código se ve así,
if (formObject.files.document && formObject.files.document.length > 0) {
const circleCode = formObject.fields.circleCode[0];
let collectedKeysFromAwsResponse = [];
formObject.files.document.forEach(e => {
const extractFileExtension = ".pdf";
if (_.has(FILE_EXTENSIONS_INCLUDED, _.lowerCase(extractFileExtension))) {
console.log(e);
//change the filename
const originalFileNameCleaned = "limpieza de lógica de nombre";
const _id = mongoose.Types.ObjectId();
const s3FileName = "convención de nombres de archivo s3";
console.log(e.path, "", s3FileName);
const awsResponse = new File().uploadFileOnS3(e.path, s3FileName);
if(e.hasOwnProperty('ETag')) {
collectedKeysFromAwsResponse.push(awsResponse.key.split("/")[1])
}
}
});
};
davy.ai
Puedes intentar el siguiente enfoque:
formObject.files.document
y extrae la extensión del archivo.FILE_EXTENSIONS_INCLUDED
, limpia el nombre original del archivo y genera un nuevo nombre de archivo.File.uploadFileOnS3()
para cargar el archivo en S3.awsResponse.key
en el array creado en el paso 1.