Las instrucciones de AWS sobre la carga de S3 ( https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3/ManagedUpload.html ) sugieren que lo siguiente debería funcionar.
var managed = s3.upload(params, function(err, data) { if (err) { throw err; } console.log(`File uploaded successfully. ${data.Location}`); }); p = managed.promise(); console.log(p);s3.upload devuelve un objeto ManagedUpload y parece funcionar. Supuestamente, el objeto tiene un método de promesa () que devuelve una promesa que podría usarse con el estilo de programación .then. Sin embargo, cuando realmente lo intento, obtengo
Uncaught TypeError TypeError: managed.promise is not a function¿Esta documentación está desactualizada? ¿Hay uno mejor en alguna parte?
Desde los documentos en upload() simplemente ingrese los parámetros, then() se debe llamar al método en el objeto de promesa para manejar un resultado (resolver) o un error (rechazar).
var upload = s3.upload({Bucket: 'bucket', Key: 'key', Body: stream}); var promise = upload.promise(); promise.then(function(data) { ... }, function(err) { ... });