【发布时间】:2018-02-18 16:03:19
【问题描述】:
我正在学习 Autodesk Forge API。通过一个简单的 C# 应用程序,我可以使用 Forge API 进行身份验证。
var responseString = await
"https://developer.api.autodesk.com/authentication/v1/authenticate"
.PostUrlEncodedAsync(new
{
client_id = Client_ID.Text,
client_secret = Client_Secret.Text,
grant_type = "client_credentials",
scope = "data:read data:write bucket:create bucket:read"
})
.ReceiveJson();
虽然我已经明确指定了存储桶:读取范围存储桶:读取,但进一步调用检查存储桶是否存在失败并出现错误:-
Http 代码 403 (Forbidden) 带有消息“仅允许存储桶创建者访问此 API”
当我尝试创建另一个具有相同名称的存储桶时,它失败了:-
Http 代码 409(冲突)与消息“桶已存在”
有人可以帮我解决这里缺少的问题吗?
【问题讨论】:
-
您尝试访问的存储桶仅由您创建?
-
@ChetanRanpariya,不,在创建bucket之前,我正在调用API来检查它是否存在(希望它会返回一个Bucket不存在)但是错误消息是不同的。我查看了 API 文档,看起来该名称不仅在您的应用程序中而且在所有应用程序中都应该是唯一的。
-
所以,基本上我尝试了一些长名称,经过几次尝试,我能够创建一个具有我唯一名称的存储桶。令人困惑的是,为什么它们在所有应用程序中强制执行这种唯一性。
-
不幸的是,这只是目前服务的限制,所以只要尝试想出唯一的名称,您就可以使用您正在使用的语言的任何随机特性轻松生成类似 GUID 的名称,或者使用您的 Forge ClientID 作为存储桶名称的前缀或后缀:“bucket1-
”。希望对您有所帮助。 -
@PhilippeLeefsma,谢谢。目前我正在使用一些随机名称,但会尝试按照建议遵循约定
标签: c# asp.net autodesk-forge