0 votes
1 view
in Salesforce by (11.9k points)
edited by

I am developing code for salesforce. We are using 'Force.com for Amazon Web Services' App from Appexchange. The app is provided by Amazon.

I am downloading files from Amazon S3 on a machine.

Sometimes I am getting the below-mentioned error. Interesting thing is, only sometimes I get this error, rest of the times it works, even for the same file.

<Error>

<Code>SignatureDoesNotMatch</Code>

<Message>

The request signature we calculated does not match the signature you provided. Check your key and signing method.

</Message>

I tried using both URL patterns provided by Amazon. Expires is set for 1hr after link generation, hence may not be an issue.

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

The signature is generated by class provided by Amazon, I guess it must work well all of the times.

Can someone elaborate why would S3 give this error only sometimes?

1 Answer

0 votes
by (31.8k points)

Sample URL for a file on Amazon S3 is-

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

The Signature is formed by classes rendered by Amazon.

For untold reasons, 'Force.com for Amazon Web Services' app might be generating signature which basically contains SPACES.

Example: In the given URL, space is substituted by '+'.

You just need to URL encode the signature in order to get rid of this problem. Encoding will substitute spaces with special characters and problems will be resolved.

Related questions

0 votes
1 answer
0 votes
1 answer
0 votes
1 answer
0 votes
1 answer
Welcome to Intellipaat Community. Get your technical queries answered by top developers !


Categories

...