Есть ли способ вручную инициировать загрузку AJAX с помощью элемента управления Kendo Upload?

Я делаю загрузку через CORS на Amazon S3 с помощью элемента управления Kendo Upload. У меня проблема с тем, что мне нужно получить подпись с моего сервера, а затем добавить ее в «данные» для объекта события созданного мной обработчика «загрузки». Проблема, конечно, в том, что в обработчике я запускаю асинхронный запрос на получение подписи, а обработчик загрузки продолжает свою работу без нужных мне данных подписи. В опубликованном API нет команды «upload()» или какой-либо другой команды, которую я мог бы вызвать, когда мой асинхронный запрос возвращается.

Я где-то видел пример ASP-Kendo-S3, но из этого кода не совсем понятно, как получается эта подпись, и, конечно же, я не использую ASP.


person Erich Oliphant    schedule 08.04.2014    source источник


Ответы (1)


Kendo Upload имеет событие onUpload. В примере Kendo с asp.net действительно нет ничего особенного для этой среды, что нельзя было бы портировать ни на что другое.

Сначала они заполняют страницу профилем (JSON в кодировке base64).

Чтобы получить подпись для этого профиля json с кодировкой base64, они используют этот метод (С#):

private static string Sign(string text, string key)
{
    var signer = new HMACSHA1(Encoding.UTF8.GetBytes(key));
    return Convert.ToBase64String(signer.ComputeHash(Encoding.UTF8.GetBytes(text)));
}

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

person The Muffin Man    schedule 04.11.2014