Amazon s3 C # auth

1

Мне нужна помощь с aws s3 Rest auth.

У меня есть следующий код:

        string url = "http://fxstestcandles.cloudapp.net/pairs/history/eurusd";
        HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
        request.Method = "GET";
        WebHeaderCollection headers = (request as HttpWebRequest).Headers;
        string httpDate = DateTime.UtcNow.ToString("ddd, dd MMM yyyy HH:mm:ss ") + "+0000";

        string canonicalString = "GET\n\n\n " + httpDate + "\n/";
        Encoding ae = new UTF8Encoding();
        HMACSHA1 signature = new HMACSHA1();
        signature.Key = ae.GetBytes("551a656b548e8466f555d540156b5a");
        byte[] bytes  = ae.GetBytes(canonicalString);
        byte[] moreBytes = signature.ComputeHash(bytes);
        string encodedCanonical = Convert.ToBase64String(moreBytes);
        headers.Add("Authorization", "AWS " + "25496a25b6554f54b5e6" + ":" + encodedCanonical);
        HttpWebResponse response = request.GetResponse() as HttpWebResponse;
        Stream stream =  response.GetResponseStream() as Stream;
        byte[] buffer = new byte[32 * 1024];
        int nRead =0;

        MemoryStream ms = new MemoryStream();
        do
        {
            nRead = stream.Read(buffer, 0, buffer.Length);
            ms.Write(buffer, 0, nRead);
        } while (nRead > 0);


        ASCIIEncoding encoding = new ASCIIEncoding();
        string responseString = encoding.GetString(ms.ToArray());
        System.Console.Write(responseString);

Мне нужна помощь. Я собираю следующую ошибку: (403) Forbiden.

Аутентификация выполняется по шагам по этой ссылке: http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html. Учетные данные: PublicKey: 25496a25b6554f54b5e6 PrivateKey: 551a656b548e8466f555d540156b5a Вам просто нужно использовать дату для SHA1, нет необходимости использовать всю строку запроса. Примеры заголовков: Дата: Пн, 26 Мар 2007 19:37:58 +0000 Авторизация: FXST AKIAIOSFODNN7EXAMPLE: frJIUN8DYpKDtOLCwo//yllqDzg =

Теги:
amazon-web-services
rest
web-services
amazon

1 ответ

0

Ваша проблема, похоже, ваша canonicalString и ваш HttpWebRequest, у меня была такая же проблема, см. Решение в этом сообщении: Ошибка Amazon S3 REST API 403 С#

Это печально, как API Amazon плохо документирован

Ещё вопросы

Сообщество Overcoder
Наверх
Меню