Autodesk Forge上传大文件返回504超时但文件已上传相关问题咨询
问题1:超时响应但文件实际上传成功的原因
普通上传接口的网关层预设了固定的响应等待阈值,你上传接近1GB的大文件时,文件数据流已经完整传输至OSS后端并完成了写入操作,但网关层等待后端返回写入成功响应的时长超过了阈值,因此提前向客户端返回了504超时响应,后端的写入流程并没有被中断,所以文件实际已存储到Bucket中。
问题2:该场景下生成的URN是否有潜在风险
只要你通过对象详情接口返回的文件大小、SHA-1哈希值和本地源文件的对应信息校验一致,这个文件就是完整可用的,对应的URN和正常上传流程获取的URN没有差异,不存在额外潜在风险。如果未做文件完整性校验,仅靠Viewer可预览判断的话,存在极小概率出现局部文件损坏但核心预览资源刚好完整的隐患,补做一次哈希校验即可排除该风险。
大于1GB文件的官方上传操作指引
针对大于100MB的文件,统一推荐使用可恢复(断点续传)上传接口,操作步骤如下:
- 第一步:将本地源文件拆分为大小在2MB~100MB之间的分块,推荐使用5MB作为分块单位,最后一个分块可小于该阈值
- 第二步:每次上传单个分块时,在请求头中添加
Content-Range字段,格式为bytes 当前分块起始字节-当前分块结束字节/源文件总字节数 - 第三步:单个分块上传成功会返回202 Accepted状态码,所有分块全部上传完成后,最后一个分块的上传请求会返回200 OK状态码,同时返回完整的对象元数据,包含你需要的objectId
- 第四步:如果上传过程中出现中断,可发起带
Content-Range: bytes */源文件总字节数的预检请求,查询已成功上传的字节范围,直接上传剩余分块即可,无需重复传输已完成的部分
内容的提问来源于stack exchange,提问作者Sivaranjani
相关产品推荐
相关产品推荐

