UploadObjectAsync()方法如何工作?

时间:2018-12-19 15:11:55

标签: c# .net autodesk-forge autodesk-bim360

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);

1 个答案:

答案 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