Autodesk forge 将大型文件(2GB)上载到Autodesk Forge数据管理API

Autodesk forge 将大型文件(2GB)上载到Autodesk Forge数据管理API,autodesk-forge,autodesk-data-management,Autodesk Forge,Autodesk Data Management,我正在尝试将一些模型上载到Autodesk Forge数据管理API。不幸的是,这些模型的大小为1GB+并且API提供了超时异常: 状态代码:504,原因短语:“网关超时” 使用以下代码(C#): var url=$”https://developer.api.autodesk.com/oss/v2/buckets/{bucketKey}/objects/{objectName}”; 使用(var httpClient=GetAuthorizedHttpClient(“数据:写入”)) { ht

我正在尝试将一些模型上载到Autodesk Forge数据管理API。不幸的是,这些模型的大小为1GB+并且API提供了超时异常:

状态代码:504,原因短语:“网关超时”

使用以下代码(C#):

var url=$”https://developer.api.autodesk.com/oss/v2/buckets/{bucketKey}/objects/{objectName}”;
使用(var httpClient=GetAuthorizedHttpClient(“数据:写入”))
{
httpClient.Timeout=TimeSpan.FromMinutes(120);
var request=newhttprequestmessage(HttpMethod.Put,url);
fileStream.Position=0;
request.Content=newstreamcontent(fileStream);
var response=httpClient.SendAsync(请求).Result;
var responseContent=response.Content.ReadAsStringAsync().Result;
如果(!response.issucessStatusCode)
抛出新异常($“未能上载对象:{response.ReasonPhrase}”);
var result=JsonConvert.DeserializeObject(response.Content.ReadAsStringAsync().result);
返回结果;
}
你有什么建议吗?
提前谢谢

这是意料之中的,对于大于100Mb的文件,您应该使用可恢复上载(根据)


使用进行检查。

使用上载大文件时导致错误416。
请检查这个问题

var url = $"https://developer.api.autodesk.com/oss/v2/buckets/{bucketKey}/objects/{objectName}";

        using (var httpClient = GetAuthorizedHttpClient("data:write"))
        {
            httpClient.Timeout = TimeSpan.FromMinutes(120);
            var request = new HttpRequestMessage(HttpMethod.Put, url);

            fileStream.Position = 0;

            request.Content = new StreamContent(fileStream);                

            var response = httpClient.SendAsync(request).Result;

            var responseContent = response.Content.ReadAsStringAsync().Result;

            if (!response.IsSuccessStatusCode)
                throw new Exception($"Failed to upload object: {response.ReasonPhrase}");

            var result = JsonConvert.DeserializeObject<ObjectUploadResult>(response.Content.ReadAsStringAsync().Result);
            return result;
        }