Как использовать cURL для загрузки файлов с URL-адреса средства выбора файлов Box
Я использую средство выбора файла Box в своем веб-приложении для отправки объекта информации JS. основанный на файле, который выбран в виджете. В объекте часть того, что возвращается, является URL, который действителен в течение 15 минут. Этот URL позволяет просматривать и загружать файл. Я пытаюсь использовать cURL для загрузки файла, но он не работает. Мне интересно, если я пропускаю шаг в этом процессе.
Вот снимок экрана объекта, который успешно возвращается из виджета средства выбора файлов:
И вот моя попытка cURL загрузить файл, используя тот же URL в командной строке:
Вот мой код для виджета выбора файлов (я заменил идентификатор клиента хэшем):
<div id="box-select" data-link-type="shared" data-multiselect="true" data-client-id="#########"></div>
<script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>
<script type="text/javascript" src="https://cdn01.boxcdn.net/js/static/select.js"></script>
<script>
$(document).ready(function() {
var boxSelect = new BoxSelect();
// Register a success callback handler
boxSelect.success(function(response) {
console.log(response);
});
// Register a cancel callback handler
boxSelect.cancel(function() {
console.log("The user clicked cancel or closed the popup");
});
});
</script>
Пожалуйста, дайте мне знать, если я что-то упустил в конфигурации, чтобы это заработало. Спасибо вам за помощь!
1 ответ
Вы настроили окно выбора файлов Box, чтобы дать вам shared
тип ссылки, который является ссылкой, доступной для других пользователей Box, через браузер, в зависимости от разрешений.
Если вы хотите ссылку для скачивания, которая может быть использована кем-либо (действует в течение 15 минут), вам нужно direct
Тип ссылки. Поэтому измените первую строку кода выбора файлов на data-link-type="direct"
, и вы должны получить гораздо более длинный URL, который вы можете использовать с curl.
Вы можете использовать взлом браузера copy as curl
. Ниже приведены шаги:
Откройте ссылку в браузере и загрузите образец через пользовательский интерфейс. Не закрывайте вкладку "Сеть" в инструментах разработчика браузера.
Щелкните правой кнопкой мыши и выберите вариант "копировать как завиток" для запроса "загрузки", который появляется в сетевых запросах при загрузке через пользовательский интерфейс.
Вставьте этот завиток на терминал, и все готово.
Примечание. В зависимости от вашей версии curl вы можете увидеть предупреждение программы curl о риске увидеть двоичный ответ в терминале и вызвать нежелательный ответ на curl. Если вы видите указанное предупреждение, используйте--output filename.zip
вариант вместе с завитком