使用Forge API对接Azure存储的URN获取及性能问题咨询
1. 是否必须通过OSS获取URN?
是的,必须通过Forge OSS(对象存储服务)才能获取Model Derivative API可识别的URN。
URN是Forge系统内部用于唯一标识文件的核心ID,它与上传到OSS的文件直接绑定。Model Derivative API仅能识别基于OSS生成的URN,无法直接使用Azure Storage中的文件路径或URL生成有效URN。因此,要让Model Derivative API处理你的Revit文件,必须先将文件上传至Forge OSS并生成对应的URN。
2. 同时上传至Azure Storage和OSS速度过慢的解决方案
针对重复上传导致的性能问题,可采用以下几种优化方案:
优先上传至OSS,同步至Azure
仅向OSS上传一次文件,完成Forge的衍生处理流程后,通过云服务的事件触发(如OSS的事件通知功能)或定时同步任务,自动将文件从OSS同步到Azure Storage。这种方式让客户端仅需完成一次上传操作,后续同步由云服务后台执行,大幅降低前端性能消耗。利用Forge中转拉取Azure文件
无需手动上传文件至OSS,而是通过Forge Management API的Create Item接口,指定source参数为Azure文件的SAS(共享访问签名)URL,让Forge服务器自动从Azure Storage拉取文件并上传至OSS生成URN。此方案将文件传输的压力转移到Forge与Azure的服务器之间,避免客户端同时发起两次上传请求,提升整体效率。采用分片上传优化传输
若需手动上传,启用Azure和OSS均支持的分片上传(Multipart Upload)功能,将大文件拆分为多个分片并行上传,利用多线程提升传输速度;同时选择就近的云服务区域(如客户端位于华东地区则选择华东节点),减少网络延迟。清理OSS冗余文件
完成Model Derivative处理后,若无需保留原始Revit文件在OSS,可删除OSS中的原始文件,仅保留衍生后的SVF等轻量化资源(或同步至Azure),既节省OSS存储成本,也避免不必要的存储占用。
内容的提问来源于stack exchange,提问作者Anhnt

