загрузить кованое ведро с диска, c # - PullRequest
0 голосов
/ 11 марта 2019

Я пытаюсь загрузить DWF в корзину моего кузнечного приложения (уже созданного и работающего должным образом) с диска в C # с помощью RestSharp

Я получаю успешный ответ на мой запрос PUT, но когда я пытаюсь перевестиDWF, использующий производный API модели, манифест для задания возвращает состояние с ошибкой с кодом ошибки «DWF2D-Not_A_DWF_Error»

Мне не повезло, и я нашел примеры, на которые можно сослатьсяс содержимым модели уже на bim360)

Есть идеи, что может быть не так с моим запросом PUT для загрузки в корзину?

byte[] byteFile = GetBinaryFile($"C:\\temp\\RoomView_{this.guid}.dwf");
RestClient client = new RestClient($"https://developer.api.autodesk.com/oss/v2/buckets/{this._bucket_key}/objects/RoomView_{this.guid}.dwf");
RestRequest request = new RestRequest(Method.PUT);
request.AddHeader("Authorization", "Bearer " + _auth_token.access_token);
request.AddHeader("Content-Length", byteFile.Length.ToString());
request.AddParameter("application/octet-stream", byteFile);

var response = client.Execute(request);

GetBinaryFile выглядит следующим образом:

private byte[] GetBinaryFile(string filename)
    {
        byte[] bytes;
        using (FileStream file = new FileStream(filename, FileMode.Open, FileAccess.Read))
        {
            bytes = new byte[file.Length];
            file.Read(bytes, 0, (int)file.Length);
        }
        return bytes;
    }

1 Ответ

0 голосов
/ 11 марта 2019

Вы можете загрузить с помощью Forge .NET пакет , и вы можете найти образец здесь (возобновляемый). Это должно быть проще, чем использовать RestSharp ...

Обновление

Использование только restsharp, что-то вроде этого:

    request.AddHeader("Content-Type", MimeType(filePath));
    request.AddHeader("Content-Disposition", string.Format("file; filename=\"{0}\"", Path.GetFileNameWithoutExtension(filePath)));
    request.AddParameter(MimeType(filePath), File.ReadAllBytes(filePath), ParameterType.RequestBody);
...