https://forge.autodesk.com/en/docs/bim360/v1/tutorials/documen-management/upload-document/
我正在按照上面的教程通过Autodesk Forge将文件上传到BIM 360文件夹中。我已经达到第6步:将文件上传到存储对象,并且我尝试使用方法 UploadObjectAsync()来上传文件,但出现错误: 从'System.Web.HttpInputStream'的'ReadTimeout'获取值时出错,我不确定如何解决此问题。
我使用的方法错误还是代码中缺少某些内容?下面是我在.NET上使用的方法。
HttpPostedFile file = req.Files[0];
ObjectsApi objectsApi = new ObjectsApi();
dynamic objects = await objectsApi.UploadObjectAsync(bucketKey, objectName, file.ContentLength, file.InputStream);
答案 0 :(得分: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
(代码here),您最好保存已发布的文件,然后上载而不是管道传输。请参见示例here。