Как работает метод UploadObjectAsync()?

https://forge.autodesk.com/en/docs/bim360/v1/tutorials/documen-management/upload-document/

Я следую приведенному выше руководству, чтобы загрузить файл в папку BIM 360 через Autodesk Forge. Я достиг шага 6: загрузите файл в объект хранения, и я пытаюсь использовать метод UploadObjectAsync() для загрузки файла, но я получаю сообщение об ошибке: ошибка при получении значения из "ReadTimeout" в "System.Web.HttpInputStream" и я не уверен, как это исправить.

Я использую неправильный метод или в коде чего-то не хватает? Ниже приведен метод, который я использую в.NET.

HttpPostedFile file = req.Files[0];
ObjectsApi objectsApi = new ObjectsApi();
dynamic objects = await objectsApi.UploadObjectAsync(bucketKey, objectName, file.ContentLength, file.InputStream);

1 ответ

Решение

Попробуйте использовать основной поток StreamReader из файла для загрузки, а не сырье InputStream из многочастной формы:

using (StreamReader streamReader = new StreamReader(fileSavePath))
{
    await objects.UploadObjectAsync(bucketKey, objectName,(int)streamReader.BaseStream.Length, streamReader.BaseStream, "application/octet-stream");
    ...
}

Учитывая, как UploadObjectAsync и его цепной метод UploadObjectAsyncWith(код здесь) реализован, вам лучше сохранить опубликованный файл, а затем загрузить его вместо потоковой передачи. Смотрите пример здесь.

Другие вопросы по тегам