Amazon S3 : Access Denied for URL using symbols

jbltx picture jbltx · Nov 30, 2013 · Viewed 12.8k times · Source

I would like to download some files uploaded on my S3 Server.

For the moment, all my buckets and files inside them are public, so I can download what I want. Unfortunately, I can't access to files using special characters like a space or "&"...

I tried to change the special characters in my URL by HTML code :

http://s3-eu-west-1.amazonaws.com/custom.bucket/mods/b&b.jar

by

http://s3-eu-west-1.amazonaws.com/custom.bucket/mods/b%26b.jar

But I always have the same error :

<Error>
    <Code>AccessDenied</Code>
    <Message>Access Denied</Message>
    <RequestId>3E987FCE07075166</RequestId>
    <HostId>
        O2EIujdbiAeYg44rsezQlargfT7qVSL8SpqbTxkd/1UwxQrwZ3SJ+R3NlHyGF7rI
    </HostId>
</Error>

Anybody could resolve this problem ?

I can't rename them because there are used by other applications.

Answer

lreeder picture lreeder · Nov 30, 2013

I am able to download public files with '&' in the name with no problems using curl:

curl https://s3.amazonaws.com/mybucket/test/b%26b.jar

Recheck the permissions on your file using the AWS console. Make sure the file has "Grantee: Everyone", and Open/Download permissions clicked, as in this screenshot:

AWS Console Screenshot

Make sure to click the "save" button after you add these credentials. Alternatively, try using your security credentials.