是否可将OSS bucket中的对象复制到Revit Design Automation引擎本地路径?
要将Autodesk Forge OSS Bucket中的对象下载到Revit Design Automation(DA4R)引擎的本地工作路径,可参考以下Python代码或curl命令:
注意:DA4R运行时的默认工作目录就是T:\Aces\Jobs\<当前作业ID>,直接调用os.getcwd()即可获取该路径,无需硬编码作业ID。
Python代码示例
使用requests库实现流式下载,适合大体积的Revit模型文件:
import requests import os # 替换为你的实际参数 bucket_key = "你的bucket名称" object_key = "要下载的OSS对象名称(即上传时的encodedfilename)" forge_token = "拥有oss:read权限的Forge访问令牌" # 保存到DA4R当前作业的工作目录,自定义文件名可自行修改 save_file_path = os.path.join(os.getcwd(), object_key) # 构造下载请求 download_url = f"https://developer.api.autodesk.com/oss/v2/buckets/{bucket_key}/objects/{object_key}" resp = requests.get( download_url, headers={"Authorization": forge_token}, stream=True ) # 检查请求是否成功 resp.raise_for_status() # 写入本地文件 with open(save_file_path, "wb") as f: for chunk in resp.iter_content(chunk_size=8192): if chunk: f.write(chunk)
curl命令示例
如果需要在脚本中直接调用curl执行下载,可使用以下命令:
curl -X GET "https://developer.api.autodesk.com/oss/v2/buckets/<替换为你的bucket名>/objects/<替换为你的对象名>" \ -H "Authorization: <替换为你的Forge访问令牌>" \ -o <替换为保存的文件名>
补充说明:如果在提交DA4R作业时就将该OSS对象配置为作业的输入参数,平台会自动将文件下载到工作目录,无需手动编写下载逻辑,直接读取对应文件即可。手动下载仅适用于作业运行过程中需要动态拉取文件的场景。
内容的提问来源于stack exchange,提问作者user17430568
相关产品推荐
相关产品推荐

