sat
sat

Reputation: 5709

Amazon S3 URL Encoding

If I have a file name that is

a'd1 & "[tttt]" + 'sq.jpg

When this gets uploaded to Amazon S3, it gets converted to this

a'd1 & %22[tttt]%22 + 'sq.jpg

So the double quotes are URL encoded and the filename itself is changed.

The file has to be fetched using the encoded URL

a%27d1+%26+%2522%5Btttt%5D%2522+%2B+%27sq.jpg So the encoding rules seem to be:

": %2522  (double encoded)
Space: + 
&: %26 
[: %5B
]: %5D
+: %2B 

Is there a way to determine all the rules that S3 requires? Normal javascript encoding with (encodeURI or even encodeURIComponent) won't work

Upvotes: 9

Views: 18233

Answers (1)

amigolargo
amigolargo

Reputation: 830

This is not from a definitive source, but it has worked for my requirements: encodeS3URI

It replaces the following characters +!"#$&'()*+,:;=?@

S3 replaces spaces in filepaths with +, so its best to do the URI encoding before any further string replacements

Upvotes: 9

Related Questions