从 Search API 接收搜索结果时,我得到一堆文件 ID。我想将这些结果作为指向原始文档的链接显示给用户。有没有办法将这些 ID 转换为规范的私有URL?v1 或 v2 API 都可以用于此目的。
谢谢。
编辑:私有 URL 是指文档所有者可以访问的 URL。
从 Search API 接收搜索结果时,我得到一堆文件 ID。我想将这些结果作为指向原始文档的链接显示给用户。有没有办法将这些 ID 转换为规范的私有URL?v1 或 v2 API 都可以用于此目的。
谢谢。
编辑:私有 URL 是指文档所有者可以访问的 URL。
您可以使用 V2 http://developers.box.com/docs/#files-create-a-shared-link-for-a-file并使用“access”:“Collaborators”。如果它是一个私人文件夹,没有合作者,并且您没有将其他任何人添加到合作者列表中,那么所有者将是唯一可以使用该“共享链接”的人。添加引号是因为分享这个词变得相当具有讽刺意味,因为你并没有真正与任何人分享。
您可以将其他人添加到协作中,从而通过执行如下 curl 调用将其他人添加到允许使用该共享链接的人员俱乐部中:
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 中
微妙之处在于协作者是在文件夹级别添加的,但共享链接是在文件级别创建的。我想您可能会要求我们提供一个新的共享链接级别“所有者”,它只允许所有者访问文件的共享链接。目前不存在。
这里的另一种方法是设置您的应用程序以代理下载。在您的应用程序中创建一个调用,该调用使用Box“下载文件”API 调用,然后通过您的 Web 服务器将该调用的响应流式传输回用户。这通常不是简单的设置,并且涉及到各种问题(例如,如果下载调用失败会发生什么)。
根据您使用的语言、框架和 Web 服务器,这可能更难或更容易实现。在某些情况下,它可能相当简单。