node.js - elastic - amazon s3 deleteObjects nodejs-no se puede poner en funcionamiento
express app in aws (1)
Estoy usando nodejs e intento eliminar múltiples objetos a la vez. Pero por alguna razón, a pesar de no devolver ningún error, la operación no funciona como se esperaba (los archivos no se eliminan). Aquí está el código:
s3.deleteObjects({
Bucket: ''myprivatebucket/some/subfolders'',
Delete: {
Objects: [
{ Key: ''nameofthefile1.extension'' },
{ Key: ''nameofthefile2.extension'' },
{ Key: ''nameofthefile3.extension'' }
]
}
}, function(err, data) {
if (err)
return console.log(err);
console.log(''success'');
});
Si trato de iterar sobre los archivos y uso el método s3.deleteObject
, entonces funciona bastante bien.
También traté de especificar el cubo sin sus subcarpetas (como ''myprivatebucket''), pero no obtuve ningún resultado de nuevo.
¿Alguna idea sobre cómo hacer que esto funcione? Estoy usando la versión del nodo: 0.10.32 y el aws debería ser 2.0.17.
Bueno, finalmente he resuelto el problema.
Al insertar los archivos, incluí las llamadas subcarpetas en el nombre del cubo. Por ejemplo:
{ Bucket: ''myprivatebucket/some/subfolders'', Key: ''nameofthefile1.extension'' }
Esto es aparentemente incorrecto y debe evitarse. El caso de uso correcto es el siguiente:
{ Bucket: ''myprivatebucket'', Key: ''some/subfolders/nameofthefile1.extension'' }
Después de insertar los elementos como este, simplemente use el mismo cubo y las mismas teclas para eliminar objetos y ¡funcionará! Al menos, ¡para mí funcionó!