Puede darse el caso de que encuentres algún problema con tu código o proyecto, recuerda probar siempre en un entorno de testing antes aplicar el código al proyecto final.
Solución:
Me las arreglé para cargar con éxito un archivo usando su código.
Aquí están los pasos que seguí:
-
Creó un nuevo depósito y un nuevo usuario de IAM
-
Establezca la política de usuario de IAM de la siguiente manera:
"Version": "2012-10-17", "Statement": [ "Sid": "Stmt1418647210000", "Effect": "Allow", "Action": [ "s3:Put*" ], "Resource": [ "arn:aws:s3:::myBucket/*" ] ]
-
NO creó una política de depósito
-
Usó su código para generar la URL prefirmada:
var aws = require('aws-sdk'); aws.config = accessKeyId: myAccessKeyId, secretAccessKey: mySecretAccessKey ; var s3 = new aws.s3(); s3.getSignedUrl('putObject', Bucket: 'myBucket', Expires: 60*60, Key: 'myKey' , function (err, url) console.log(url); );
-
Copié la URL en la pantalla y usé curl para probar la carga como se muestra a continuación:
curl.exe -k -X PUT -T "someFile" "https://myBucket.s3.amazonaws.com/myKey?AWSAccessKeyId=ACCESS_KEY_ID&Expires=1457632663&Signature=Dhgp40j84yfjBS5v5qSNE4Q6l6U%3D"
En mi caso, por lo general, los cambios en la política tardaron de 5 a 10 segundos en surtir efecto, por lo que si falla la primera vez, asegúrese de seguir enviándolo por un tiempo.
Espero que esto ayude.
Puede que también te ayude 🙂 Añade un Tipo de contenido propiedad :
s3.getSignedUrl('putObject',
Bucket: 'myBucket',
Expires: 60*60,
Key: 'myKey',
ContentType: 'image/jpeg',
, function (err, url)
console.log(url);
);
- En su consola de IAM, haga clic en Usuarios
- En la lista de la derecha, elija el usuario de IAM que utilizó (debe ser ‘miusuario’)
- Elija Permisos en las subpestañas
- Haga clic en Adjuntar política y elija AmazonS3FullAccess
La página final será así.
También puede consultar la subpestaña Credenciales de seguridad, su accessKeyId debe estar en la lista. La secretAccessKey simplemente no puede volver a obtenerse.
Si estás de acuerdo, tienes la opción de dejar un tutorial acerca de qué te ha parecido esta sección.