Как использовать 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.

https://developer.box.com/v2.0/docs/the-box-file-picker

Вы можете использовать взлом браузера copy as curl. Ниже приведены шаги:

  1. Откройте ссылку в браузере и загрузите образец через пользовательский интерфейс. Не закрывайте вкладку "Сеть" в инструментах разработчика браузера.

  2. Щелкните правой кнопкой мыши и выберите вариант "копировать как завиток" для запроса "загрузки", который появляется в сетевых запросах при загрузке через пользовательский интерфейс.

  3. Вставьте этот завиток на терминал, и все готово.

Примечание. В зависимости от вашей версии curl вы можете увидеть предупреждение программы curl о риске увидеть двоичный ответ в терминале и вызвать нежелательный ответ на curl. Если вы видите указанное предупреждение, используйте--output filename.zip вариант вместе с завитком

Другие вопросы по тегам