2016-10-17 3 views
0

У меня возникли трудности с отправкой запроса очистки на LeaseWeb CDN API. Трудность состоит в том, что LeaswebExamples находятся в PHP/Python и не имеют никакой информации о том, как это сделать в Post man. Завитка примера является ближайшим:Purge LeaseWeb CDN с использованием LeaseWeb CDN API в POSTMAN

curl -X POST -d '{"urls":["/path/to/file.jpg"]}' "https://api.leasewebcdn.com/content/purge/1234567890/123/1440593540/4a69f766bc48b1ed3d025339313196c388de8da5"

, но я всегда получаю «запрещен» назад от Почтальон.

Я создаю хэш sha1, используя secretKey + timeStamp + authenticationURL; в C#:

 var authenticationURL = "https://api.leasewebcdn/content/purge"; 
     var sha1 = new SHA1Managed(); 
     var timeStamp = (int)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds; 

     var sha1Input = secretKey + timeStamp + authenticationURL; 

     var hash = sha1.ComputeHash(Encoding.UTF8.GetBytes(sha1Input)); 
     var sb = new StringBuilder(hash.Length); 

     foreach (byte b in hash) 
     { 
      // can be "x2" if you want lowercase 
      sb.Append(b.ToString("X2")); 
     } 

который я затем использовать в Почтальон, чтобы отправить следующее:

https://api.leasewebcdn.com/content/purge/1405123458/8888/1476699042/D94CF7DDF02CC6D11C7A0B0221F5DE40C11155E01

где 1405123458 = клиент Num

8888 = идентификатор зоны

D94CF7DDF02CC6D11C7A0B0221F5DE40C11155E01 = hashed код формы подписи

ТипСодержимого = применение/JSON тела = { «URL»: [ «*»]} < - очистит все файлы в КДС ведро

Everytime я получить запрещен назад, и я не могу разобраться, что не так, как все насколько я вижу, параметры верны.

Документы API Leaseweb CDN находятся в следующей ссылке, но все они находятся в PHP/Python, и у меня есть ощущение, что мой метод хеширования может быть неправильным?

http://developer.leaseweb.com/cdn-docs/?php#purge-file(s)-from-a-zone

Кто-нибудь использовал LEASEWEB CDN апи через C# раньше? Любая помощь или указатели будут с благодарностью получены.

ответ

0

Хорошо, мне удалось это решить. Код был действительно хорошим, за исключением подписи Hash. Для LeaseWeb подпись Hash всегда должна быть в нижнем регистре. Это может быть достигнуто путем настройки выше код на 1 (один !!) характер:

var hash = sha1.ComputeHash(Encoding.UTF8.GetBytes(sha1Input)); 
    var sb = new StringBuilder(hash.Length); 

    foreach (byte b in hash) 
    { 
     // this must be lowercase x2 (not X2) to produce a lowercase hash signature. 
     sb.Append(b.ToString("x2")); 
    } 

Я был удивлен, это не было указано в документации LEASEWEB CDN, как это заставило меня тратить много времени выясняя это вне ....

Смежные вопросы