authentication amazon-web-services amazon-s3 salesforce force.com

authentication - Amazon S3: Error extraño-''A veces'' SignatureDoesNotMatch, a veces lo hace



amazon-web-services amazon-s3 (2)

¿Estás usando el Java SDK? ¿Cual version?

Se introdujo un error en la versión 1.4.4, creo, y se ha corregido en los lanzamientos más recientes. Una vez que me actualicé a la versión con errores, tuve problemas de firma intermitentes al usar SQS, y he visto una publicación en foros de AWS de algunas personas que informan el mismo problema con DynamoDB. Ahora me actualicé a la versión 1.4.7 y el error desapareció.

¡Tal vez estás viendo el mismo error!

Estoy desarrollando código para la fuerza de ventas. Estamos utilizando la aplicación ''Force.com for Amazon Web Services'' de Appexchange. La aplicación es proporcionada por Amazon.

Estoy descargando archivos de Amazon S3 en una máquina.

A veces recibo el error mencionado a continuación. Lo interesante es que, a veces, recibo este error, el resto del tiempo funciona, incluso para el mismo archivo.

<Error> <Code>SignatureDoesNotMatch</Code> <Message> The request signature we calculated does not match the signature you provided. Check your key and signing method. </Message>

Intenté usar ambos patrones de URL proporcionados por Amazon. Caduca se establece durante 1 hora después de la generación del enlace, por lo tanto, puede no ser un problema.

URL1:- http://adminportal.s3.amazonaws.com/sample.pdf?AWSAccessKeyId=AKIAIRUZSRRCVSLXZCIA&Expires=1372653478&Signature=RvMJ1gJL+qNKmnRkqzuytmlUTGQ= URL2:- http://s3.amazonaws.com/adminportal/sample.pdf?AWSAccessKeyId=AKIAIRUZSRRCVSLXZCIA&Expires=1372658253&Signature=%2FmI0m0PTlHJpJ%2FP5d%2FX3OApqzcI%3D

La firma es generada por clase proporcionada por Amazon, supongo que debe funcionar bien todo el tiempo.

¿Puede alguien explicar por qué S3 daría este error solo algunas veces?


Finalmente pude resolver este problema, ¿cómo?

La URL de muestra para el archivo en Amazon S3 es-

http://adminportal.s3.amazonaws.com/sample.pdf?AWSAccessKeyId=AKIAIRUZSRRCVSLXZCIA&Expires=1372653478&Signature=RvMJ1gJL+qNKmnRkqzuytmlUTGQ=

Aquí la Firma es generada por clases proporcionadas por Amazon.

Por razones desconocidas, la aplicación ''Force.com for Amazon Web Services'' generaba una firma que contenía ESPACIOS.

Por ejemplo, en la URL dada, el espacio se reemplaza por ''+''.

Para deshacerse del problema, solo la URL codifica la firma. La codificación reemplazará los espacios con carácter especial y el problema se resolverá.