I am trying to make a Http request to amazon s3(get a file) but I am getting a forbidden error.
Here is my code:
string today = DateTime.UtcNow.ToString("ddd,' 'dd' 'MMM' 'yyyy' 'HH':'mm':'ss' 'zz00", new System.Globalization.CultureInfo("en-US"));
string bucket = "rethymno";
string path = "/aasdf.txt";
string stringToSign = "GET" +
"\n" +
"\n" +
"\n" +
today + "\n"+
"/" + bucket + path;
string AWSSecret = "xxx";
string AWSKey = "xxx";
Encoding ae = new UTF8Encoding();
HMACSHA1 signature = new HMACSHA1(ae.GetBytes(AWSSecret));
string encodedCanonical = Convert.ToBase64String(signature.ComputeHash(ae.GetBytes(stringToSign)));
string authHeader = "AWS " + AWSKey + ":" + encodedCanonical;
string url = "http://"+bucket+".s3.amazonaws.com"+path;
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
request.Headers.Add("Authorization", authHeader);
request.Headers.Add("x-amz-date", today);
HttpWebResponse res = request.GetResponse() as HttpWebResponse;
any suggestions fixing this issue ?