最近我一直在玩Box.com的API 2.0版。
根据官方说明 this document,我可以为文件“成功”设置“访问”。
但是,如果我将其更改为“公司”或“协作者”,则服务器会返回一个回复,说明找不到HTTP 404,如下所示。
{
"type":"error",
"status":404,
"code":"not_found",
"help_url":"http:\/\/developers.box.com\/docs\/#errors",
"message":"Not Found",
"request_id":"609097837503b1dabc4d0c"
}
我无法弄清楚这条消息的确切含义“未找到”。
这是我发送的请求正文
{
"shared_link":{
"access":"Open",
"permissions":{
"download":true,
"preview":true
}
}
}
这是返回错误的请求正文
{
"shared_link":{
"access":"company",
"permissions":{
"download":true,
"preview":true
}
}
}
我想知道它是不应该做的事情,还是只是api中的一个错误。
提前感谢您的回复。
================================
对问题进行了一些更新。
我担心这不是案件相关的问题 虽然我看到它们时文档上的示例确实使用大写“打开”。
在我的情况下,使用“打开”或“打开”, 我可以毫无问题地成功设置sharelink。
但是,以下情况的行为对我来说有点奇怪。
案例1:将权限设置为属性(下载和预览)为false 将返回404 (只将其中一个设置为true可正常工作)
{
"shared_link":{
"access":"Open",
"permissions":{
"download":false,
"preview":false
}
}
}
在以下情况中,为了说明目的,我首先将“访问”设置为“打开”。
案例2:将“访问权”设置为“协作者”会返回404未找到
案例3:为“协作者”设置“访问权限” 工作正常,但json响应未正确显示“访问”为“协作者”
以下是案例3的回复摘录,“访问”仍然是“开放”
shared_link": {
"url": "https://www.box.com/s/03a47eb4b7dce0439d7f",
"download_url": "https://www.box.com/shared/static/03a47eb4b7dce0439d7f.pdf",
"password_enabled": false,
"unshared_at": null,
"download_count": 0,
"preview_count": 0,
"access": "Open",
"permissions": {
"download": true,
"preview": true
}
“公司”与以前的案例似乎相同,所以我就此止步。
出于好奇,我设置了对文件中提到的任意字符的“访问”(我试过像“pp”,“c”,“test”这样的字样), 有趣的是服务器似乎全部返回200:好但是json响应仍然是“访问”:“打开”。相当混乱。
答案 0 :(得分:2)
原来,"访问"参数区分大小写。我们现在已经解决了这个问题,所以" Open"和"打开"等都有效。
事实证明,你也暴露了一些围绕文件共享的棘手边缘案例。您可以设置一些安全设置,例如"文件夹属性:安全性"设置说"仅限于与协作者的共享链接。"
事实证明,如果您设置了此设置,则该API会调用以设置"访问"到"打开",我们将返回404.我们将努力使这个更具信息性的错误(如403,访问被拒绝)。
至于其他案件。
案例1:我们的网络ui限制您设置其中一些组合(例如download = false和preview = false),因为当我们构建共享功能时,我们并没有想到拥有一个不可下载的,不可预览的文件是有意义的。
案例2(以及案例3的一部分):设置为"协作者"或"合作者"现在应该工作正常。错误已修复。
案例3:设置为" co"或" foo"违反了#34; Open。"我们现在更改了它以返回错误(再次404)。
希望有所帮助。