0

如何从我创建的 Autodesk A360 存储桶下载文件?该文件是 Revit 项目文件,我使用 2-legged OAuth 进行授权。

4

2 回答 2

1

您需要使用 3 legged 身份验证从 A360 访问文件,因为您需要您正在访问其帐户的用户的批准 - 该用户是 3rd leg。如果您尝试从自己的应用程序在 OSS 上的私有存储桶中访问文件,那么您不需要用户的批准,因为存储桶属于您的应用程序而不是用户。

附带说明一下,如果尝试使用数据管理 API 访问 BIM 360 文件(如果这就是您所说的),那么暂时您需要使用 2 腿身份验证,但您的应用程序需要手动批准被我们。

Augusto 的网络广播介绍了 2-legged 与 3-legged 身份验证: oAuth 和数据管理 API 简介

于 2016-10-13T13:09:58.340 回答
0

当我将 v1 更改为 v2 时尝试创建存储桶后,我没有得到存储桶密钥...

见下文

公共静态字符串GetBucket(字符串accessToken,字符串bucketKey,字符串策略){

        // (1) Build request 
        var client = new RestClient();
        client.BaseUrl = new System.Uri(baseApiUrl);

        // Set resource/end point
        var request = new RestRequest();
        request.Resource = "oss/v1/buckets";
        request.Method = Method.GET;


        // Add headers  
        request.AddHeader("Authorization", "Bearer " + accessToken);
        request.AddHeader("Content-Type", "application/json"); // MH: skipping this works. 

        // Add JSON body. in simplest form. 
        request.AddJsonBody(new { bucketKey = bucketKey, policy = policy });


        // (2) Execute request and get response
        IRestResponse response = client.Execute(request);
        //TaskDialog.Show("create bucket", response.StatusDescription);

        // Save response. This is to see the response for our learning.
        m_lastResponse = response;

        TaskDialog.Show("response", m_lastResponse.ToString());

        // Get the key = bucket name 
        string key = "";
        if (response.StatusCode == HttpStatusCode.OK)
        {
            JsonDeserializer deserial = new JsonDeserializer();
            OssBucketsResponse bucketsResponse = deserial.Deserialize<OssBucketsResponse>(response);
            key = bucketsResponse.key;
        }




        return key; // the bucket name 
    }
于 2016-10-27T10:43:50.650 回答