如何通过搜索API获取文档的私有URL?

时间:2012-10-06 00:05:04

标签: box-api

从Search API接收搜索结果时,我会收到一堆文件ID。我想将这些结果显示给用户,作为原始文档的链接。有没有办法将这些ID转换为规范的私人网址? v1或v2 API都可以用于此目的。

感谢。

编辑:通过私人网址,我指的是文档所有者可以访问的网址。

2 个答案:

答案 0 :(得分:2)

您可以使用V2 http://developers.box.com/docs/#files-create-a-shared-link-for-a-file并使用“访问权限”:“协作者”。如果它是私人文件夹,没有协作者,并且您没有将其他任何人添加到协作者列表中,那么所有者将是唯一可以使用该“共享链接”的人。之所以增加引用,因为分享这个词会变得颇具讽刺意味,因为你并没有真正与任何人分享。

您可以将其他人添加到协作中,然后通过执行此类卷曲调用进入允许使用该共享链接的人员俱乐部:

curl https://api.box.com/2.0/collaborations \
-H "Authorization: BoxAuth api_key=API_KEY&auth_token=AUTH_TOKEN" \
-d '{"item": { "id": "FOLDER_ID", "type": "folder"}, {"accessible_by": { "id": "USER_ID"}, "role": "editor"}' \
-X POST

http://developers.box.com/docs/#collaborations-add-a-collaboration

的V2 API中也记录了这一点

微妙的是在文件夹级别添加了协作者,但是在文件级别创建了共享链接。我想你可能会要求我们提供一个新的共享链接级“所有者”,它只允许所有者访问该文件的共享链接。目前还不存在。

答案 1 :(得分:1)

此处的另一种方法是将应用程序设置为代理下载。在您的应用程序中创建一个使用Box "Download a file" API Call的呼叫,然后通过您的Web服务器将该呼叫的响应流回用户。这通常不容易设置,并且涉及各种问题(例如,如果下载调用失败会发生什么)。

根据您使用的语言,框架和Web服务器,可能更难或更容易实现。在某些情况下,它可以相当简单。