关于 extract.autodesk.io 的问题 - 采用文件路径而不是使用文件选择器进行选择

Questions about extract.autodesk.io - taking a file path instead of choosing with the file chooser

我正在尝试修改项目,以便插入文件路径或文件作为变量,而不是用户选择模型文件。所以我正在寻找实际上传发生的位置。

submitProject()中: https://github.com/cyrillef/extract.autodesk.io/blob/master/www/js/app.js#L129

我看到它只是发送(通过 ajax 请求)一个包含文件名和唯一标识符但不包含实际二进制文件的对象。

在这里: https://github.com/cyrillef/extract.autodesk.io/blob/master/www/js/upload-flow.js#L34r.upload(),这是模型的实际上传吗?

当您在文件选择器中按“确定”时,它会立即开始上传文件吗?

有没有办法给它一个文件路径来上传而不是用表单和文件选择器上传?

这个示例的作者应该在圣诞假期,我刚刚在我的机器上下载并安装了提取器示例,并对代码进行了一些调试,让我尽可能多地回答。

总的来说,我认为你的一些理解是正确的,但让我再解释一下:

要上传翻译的本地文件,真正的“上传”其实有2个步骤。

正如您提到的,当您在文件选择器中按确定时,是的,文件将首先上传到 "extractor" 服务器,正如您通过 r.upload() 等方法注意到的那样,它是实际上使用 JavaScript 库调用“flow.js”,它通过 HTML5 文件 API 提供多个同步、稳定、容错和 resumable/restartable 文件上传。我不是这方面的专家,但您可以查看该模块,了解如何使用它上传文件。

至此,您的文件已从客户端上传到"extractor"服务器,但如果您要将文件翻译成"svf",则需要将文件上传到Autodesk Server(OSS), that is done by clicking “submit my project” buton, when you click this button, as you mentioned, from client, it will call the method submitProject() in https://github.com/cyrillef/extract.autodesk.io/blob/master/www/js/app.js, this method will send a post request of “/api/projects” to the "extractor" server, if you check the code at server side https://github.com/cyrillef/extract.autodesk.io/blob/master/server/projects.js ] ,可以看到提取器服务器实际将文件上传到Autodesk OSS,然后触发翻译服务。

此功能(传递 URL 字符串与二进制文件)已经实现。您可以使用 uri: 编辑框并将您的文件 URL 粘贴到那里。它支持带有访问令牌的 http(s) 或 S3 uri。 物理上传发生在 file 中,而 SubmitProject() 代码仅发送 JSON 中的信息。 JSON 对象仅包含对使用 flow.js 上传的文件的引用。但如果您选择了该方法,将包含 uri 字符串。