0

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

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#L34 有r.upload(),这是模型的实际上传吗?

当您在文件选择器中按确定时,它是否开始上传文件?

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

4

2 回答 2

1

这个示例的作者应该是在圣诞节假期,我刚刚在我的机器上下载并设置了提取器示例,对代码进行了一些调试,让我尽量回答。

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

对于一个本地文件的上传和翻译,实际的“上传”实际上有 2 个步骤。

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

至此,您的文件已从客户端上传到“extractor”服务器,但如果您要将文件翻译为“svf”,则需要将文件上传到Autodesk Server(OSS),点击“提交”即可我的项目”按钮,当您单击此按钮时,正如您所提到的,从客户端,它将调用https://github.com/cyrillef/extract.autodesk.io/blob/master/www/js中的方法 submitProject() /app.js ,如果您在服务器端检查代码https://github.com/cyrillef/extract.autodesk.io/,此方法将向“extractor”服务器发送“/api/projects”的发布请求blob/master/server/projects.js,可以看到提取服务器实际将文件上传到Autodesk OSS,然后触发翻译服务。

于 2016-12-27T02:48:36.477 回答
1

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

于 2016-12-28T09:17:08.363 回答