如何使用cURL从Box文件选择器URL下载文件

如何使用cURL从Box文件选择器URL下载文件,curl,box-api,boxapiv2,Curl,Box Api,Boxapiv2,我在web应用程序中使用发送JS信息对象。基于小部件中选择的文件。在对象中,返回的部分内容是一个有效期为15分钟的URL。此URL允许您查看和下载文件。我正试图利用cURL下载该文件,但它似乎不起作用。我想知道我是否错过了这个过程中的一个步骤 以下是从文件选择器小部件成功返回的对象的屏幕截图: 下面是我在命令行中使用相同URL下载文件的尝试: 以下是我为文件选择器小部件编写的代码,我已将客户端ID替换为哈希: <div id="box-select" data-link-type="

我在web应用程序中使用发送JS信息对象。基于小部件中选择的文件。在对象中,返回的部分内容是一个有效期为15分钟的URL。此URL允许您查看和下载文件。我正试图利用cURL下载该文件,但它似乎不起作用。我想知道我是否错过了这个过程中的一个步骤

以下是从文件选择器小部件成功返回的对象的屏幕截图:

下面是我在命令行中使用相同URL下载文件的尝试:

以下是我为文件选择器小部件编写的代码,我已将客户端ID替换为哈希:

 <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>

请让我知道,如果我在配置中丢失了一些东西,以使其正常工作。谢谢你的帮助

您已配置Box file picker为您提供共享链接类型,其他Box用户可通过浏览器访问该类型的链接,具体取决于权限

如果你想要一个下载链接可以被任何人使用15分钟,你需要一个直接链接类型。所以,将文件选择器代码的第一行更改为data link type=direct,您应该得到更长的URL,可以与curl一起使用


您可以使用copy as curl的浏览器破解。以下是步骤:

从浏览器中打开链接,并通过UI进行示例下载。保持浏览器开发工具的“网络”选项卡处于打开状态

右键单击并对下载请求执行“复制为卷曲”选项,当您通过UI下载请求时,会在网络请求中看到该选项

将卷曲粘贴到端子上,即可完成

注意:根据您的curl版本,您可能会看到curl程序发出的警告,指出在终端中看到二进制响应并在curl上导致不希望的响应的风险。如果您看到上述警告,请将-output filename.zip选项与curl一起使用