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

How to use cURL to download files from Box file picker URL

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

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

这是我的 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 文件选择器配置为提供 shared link 类型,其他 Box 用户可以通过浏览器访问 link 类型,具体取决于权限。

如果您想要一个任何人都可以使用的下载 link(有效期为 15 分钟),您需要 direct link 类型。因此,将文件选择器代码的第一行更改为 data-link-type="direct",你应该会得到更长的 URL,你可以使用 curl。

https://developer.box.com/v2.0/docs/the-box-file-picker#section-configuration-options

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

  1. 从浏览器打开 link,然后通过 UI 下载示例。保持浏览器开发工具的“网络选项卡”打开。

  2. 当您通过 UI.[=12 下载它时,右键单击并为您在网络请求中看到的“下载”请求执行“复制为 curl”选项=]

  3. 将那个卷曲粘贴到终端上,你就完成了。

注意:根据您的 curl 版本,您可能会看到 curl 程序发出警告,提示存在在终端中看到二进制响应并导致 curl 出现意外响应的风险。如果您看到上述警告,请将 --output filename.zip 选项与 curl

一起使用