C# 使用Autodesk Forge API验证和创建存储桶
我正在学习Autodesk Forge API。通过一个简单的C#应用程序,我能够使用Forge API进行身份验证C# 使用Autodesk Forge API验证和创建存储桶,c#,asp.net,autodesk-forge,C#,Asp.net,Autodesk Forge,我正在学习Autodesk Forge API。通过一个简单的C#应用程序,我能够使用Forge API进行身份验证 var responseString = await "https://developer.api.autodesk.com/authentication/v1/authenticate" .PostUrlEncodedAsync(new {
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();
虽然我已经明确指定了bucket:read作用域bucket:read,但检查bucket是否存在的进一步调用失败,错误为:-
Http代码403(禁止),消息为“仅允许bucket创建者访问此API”
当我尝试创建另一个具有相同名称的bucket时,失败的原因如下:-
Http代码409(冲突)与消息“Bucket已存在”
有人能帮我解释一下这里缺少什么吗?是的,问题是您的bucket key在所有应用程序和区域中都应该是全局唯一的。您可以查看位于的文档以了解详细信息,尤其是Bucket Key的描述。您尝试访问的Bucket仅由您创建?@ChetanRanpariya,否,在创建Bucket之前,我正在调用API检查它是否存在(希望它返回的Bucket不存在),但错误消息不同。我查看了API文档,发现名称不仅在应用程序中应该是唯一的,而且在所有应用程序中都应该是唯一的。因此,基本上,我尝试了一些长名称,在尝试了几次之后,我能够使用我唯一的名称创建一个bucket。令人困惑的是,为什么他们在所有应用程序中都强制执行这种唯一性。不幸的是,目前这只是服务的一个限制,所以请尝试使用唯一的名称,您可以使用所使用语言的任意随机特性非常轻松地生成类似GUID的名称,或者使用Forge ClientID作为bucket名称的前缀或后缀:“bucket1-”。希望这能有所帮助。@PhilippeLeefsma,谢谢。目前我正在使用一些随机名称,但会按照建议的惯例尝试。谢谢。我将使用“Philippe”建议的模式来形成唯一的名称。