我在我的Web应用程序中使用Box file picker来发送信息的JS对象。基于窗口小部件中选择的文件。在对象中,返回的部分是一个有效15分钟的URL。此URL允许您查看和下载文件。我正在尝试利用cURL下载文件,但它似乎并没有起作用。我想知道我是否错过了这个过程中的一步。
这是我的文件选择器小部件的代码(我已用哈希替换了客户端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>
如果我在配置中遗漏了某些内容,请告诉我。谢谢你的帮助!
答案 0 :(得分:1)
您配置了Box文件选择器,为您提供shared
链接类型,这是其他Box用户可通过浏览器访问的链接,具体取决于权限。
如果您想要任何人都可以使用的下载链接(有效期为15分钟),则需要direct
链接类型。因此,将文件选择器代码的第一行更改为data-link-type="direct"
,您应该获得更长的URL,您可以使用curl。
https://developer.box.com/v2.0/docs/the-box-file-picker#section-configuration-options
答案 1 :(得分:0)
您可以使用copy as curl
的浏览器。步骤如下:
从浏览器中打开链接,然后通过UI进行示例下载。保持浏览器开发工具的“网络标签”打开。
右键单击鼠标,然后为通过UI下载的“下载”请求(显示在网络请求中)执行“复制为卷曲”选项。
粘贴卷曲在终端上的东西,您就完成了。
注意:根据您的curl版本,curl程序可能会警告您,有可能在终端中看到二进制响应并在curl上引起不良响应。如果您看到上述警告,请同时使用--output filename.zip
选项和curl