Мы создаем форму, которая позволяет пользователям загружать большие файлы. На мобильных устройствах и медленных соединениях может потребоваться некоторое время для загрузки, поэтому для этого важно, чтобы это было обработано вызовом AJAX, который показывает пользователям индикатор выполнения (или что-то, чтобы сообщить им, что он все еще работает).Загрузка файла AJAX с секретными запросами vars
Вот проблема: конечная точка для загрузки - сторонний API, который ожидает, что наш секретный ключ API станет одним из параметров. Вот ссылка непосредственно на the section in their documentation. Этот ключ API не может быть выставлен пользователям на стороне клиента.
Мой первый инстинкт заключается в том, чтобы отправить форму на промежуточный PHP-скрипт на нашем сайте, который имеет ключ API, а затем загружает файл в API. Но я уверен, что это будет означать загрузку файла дважды: один раз на наш сервер. Затем снова с нашего сервера на конечную точку API. Даже если форма отправлена с помощью AJAX, это не является отличным результатом для пользователя, который будет ждать в два раза больше времени для его завершения.
So: Какой самый простой способ позволить пользователям загружать файлы, сохраняя при этом наш ключ API безопасным?
Некоторые детали, которые могут или не могут быть важны:
Наш сайт является PHP веб-приложение построен на фреймворке CakePHP (v2.x). Загружаемые файлы - это видеофайлы всех разных форматов от 1 до 5 минут. API - это компания под названием Wistia (см. Ссылку на документы выше). Размер файлов составляет от 3 до 30 МБ. У нас нет возможности изменить способ работы стороннего API.
Как вы должны передать параметр API? По PHP? По Javascript в качестве параметра в URL-адресе? Я не очень понимаю, почему это должно быть общедоступным, а не скрытым на стороне PHP. – Alvaro
Ajax-запрос будет отправлен непосредственно третьей стороне? – Pieter
@Alvaro Я добавил ссылку на параметры авторизации в своих документах. – emersonthis