autodesk-forge - 共享视图 + Forge 访问 - 我可以将 Inventor 模型作为共享视图推送,然后访问 Forge 应用程序中的存储桶
问题描述
我想使用 Vault/AutoCAD/ACADE/Inventor 的共享视图功能将模型等(尤其是更大的 Inventor 装配体)推送到云端,我假设它们在 OSS 存储桶中着陆。我认为它们只在那里有效 30 天,但对于我的目的来说,这段时间是可以的。我想知道有什么方法可以获取存储桶的 ID,然后使用它来查看或将该 SVF 文件拉回防火墙内的 APP 以供进一步使用?我在本地查看器应用程序中计划了一些扩展,但是由于模型中的引用,我没有一个好的方法可以将模型放入云端并首先生成 - 我必须检查模型以及所有参考资料,将它们压缩,然后将其发送到模型衍生品等。
更多信息:
因此,使用 Fiddler,我可以看到几个与此相关的有趣调用。我进入 Vault 并为 DWG 文件创建了一个共享视图,然后只是观察了交通情况。我看到了一种可能被利用的模式的调用。
呼叫 1:
GET https://360.autodesk.com/Viewer/GetViewerTranslationById?viewerId=dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6YTM2MHZpZXdlci90NjM3MzA1OTg3ODExMjQxMTQ4XzQxYjE3M2M1LTVmZjctNDQ2ZC1iNTFkLTgwZTg1NjQ3NjU3ZC5jb2xsYWJvcmF0aW9u
呼叫 2:
GET https://360.autodesk.com/Viewer/GetAccessToken
调用 2 返回一个令牌:
token_type: "Bearer"
expires_in: "3599"
expires_at: "2020-07-17T17:02:15.1187374+00:00"
access_token: "eyJhbGciOiJIUzI1NiIsImtpZCI6Imp3dF9zeW1tZXRyaWNfa2V5In0.eyJzY29wZSI6WyJkYXRhOnJlYWQiLCJkYXRhOndyaXRlIiwiZGF0YTpzZWFyY2giXSwiY2xpZW50X2lkIjoiVmZNQ3U1NDg2U3hLQXVRaGRVMU9aYTJuTHdqR1VXcEciLCJhdWQiOiJodHRwczovL2F1dG9kZXNrLmNvbS9hdWQvand0ZXhwNjAiLCJqdGkiOiI5NVFQYnhGWjlmZ1p0YWxzbXg2OW1oUWczck9WbWRKeDRtZjdtdUY0Z0xBME01TmNqZjJCT1hoa3RiRHdlVm04IiwiZXhwIjoxNTk1MDA1MzQ2fQ.tRQYz7PP-_NIDrZFrWbXvxiP4NfooBHAIC89eQuelkw"
bucket: "a360viewer"
然后调用 3 到衍生品服务:
GET https://developer.api.autodesk.com/derivativeservice/v2/manifest/dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6YTM2MHZpZXdlci90NjM3MzA1OTg3ODExMjQxMTQ4XzQxYjE3M2M1LTVmZjctNDQ2ZC1iNTFkLTgwZTg1NjQ3NjU3ZC5jb2xsYWJvcmF0aW9u
.....
Authorization: Bearer eyJhbGciOiJIUzI1NiIsImtpZCI6Imp3dF9zeW1tZXRyaWNfa2V5In0.eyJzY29wZSI6WyJkYXRhOnJlYWQiLCJkYXRhOndyaXRlIiwiZGF0YTpzZWFyY2giXSwiY2xpZW50X2lkIjoiVmZNQ3U1NDg2U3hLQXVRaGRVMU9aYTJuTHdqR1VXcEciLCJhdWQiOiJodHRwczovL2F1dG9kZXNrLmNvbS9hdWQvand0ZXhwNjAiLCJqdGkiOiI5NVFQYnhGWjlmZ1p0YWxzbXg2OW1oUWczck9WbWRKeDRtZjdtdUY0Z0xBME01TmNqZjJCT1hoa3RiRHdlVm04IiwiZXhwIjoxNTk1MDA1MzQ2fQ.tRQYz7PP-_NIDrZFrWbXvxiP4NfooBHAIC89eQuelkw
....
调用 3 返回大量信息:
guid: "dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6YTM2MHZpZXdlci90NjM3MzA1OTg3ODExMjQxMTQ4XzQxYjE3M2M1LTVmZjctNDQ2ZC1iNTFkLTgwZTg1NjQ3NjU3ZC5jb2xsYWJvcmF0aW9u"
owner: "dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6YTM2MHZpZXdlci90NjM3MzA1OTg3ODExMjQxMTQ4XzQxYjE3M2M1LTVmZjctNDQ2ZC1iNTFkLTgwZTg1NjQ3NjU3ZC5jb2xsYWJvcmF0aW9u"
hasThumbnail: "true"
startedAt: "Fri Jul 17 16:06:29 UTC 2020"
type: "design"
urn: "dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6YTM2MHZpZXdlci90NjM3MzA1OTg3ODExMjQxMTQ4XzQxYjE3M2M1LTVmZjctNDQ2ZC1iNTFkLTgwZTg1NjQ3NjU3ZC5jb2xsYWJvcmF0aW9u"
success: "100%"
progress: "complete"
region: "US"
status: "success"
children:
0:
guid: "aa85aad6-c480-4a35-9cbf-4cf5994a25ba"
hasThumbnail: "true"
role: "viewable"
progress: "complete"
type: "folder"
status: "success"
version: "2.0"
urn: "dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6YTM2MHZpZXdlci90NjM3MzA1OTg3ODExMjQxMTQ4XzQxYjE3M2M1LTVmZjctNDQ2ZC1iNTFkLTgwZTg1NjQ3NjU3ZC5jb2xsYWJvcmF0aW9u"
inputFileSize: 1059328
inputFileType: "collaboration"
name: "C-424305-036.dwg.dwf"
success: "100%"
children:
0:
guid: "87CBE465-EAB2-43C0-BA0A-D148B3418FF3_Sheets"
type: "folder"
name: "Sheets"
hasThumbnail: "true"
status: "success"
progress: "complete"
success: "100%"
children:
0:
guid: "933b32f8-830d-4861-6e81-294f5d07d4fc"
type: "geometry"
role: "2d"
name: "C-424305-036-Model"
status: "success"
size: 585718
hasThumbnail: "true"
progress: "complete"
success: "100%"
viewableID: "com.autodesk.dwf.ePlot_87CBE466-EAB2-43C0-BA0A-D148B3418FF3"
order: 0
children:
0:
urn: "urn:adsk.viewing:fs.file:dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6YTM2MHZpZXdlci90NjM3MzA1OTg3ODExMjQxMTQ4XzQxYjE3M2M1LTVmZjctNDQ2ZC1iNTFkLTgwZTg1NjQ3NjU3ZC5jb2xsYWJvcmF0aW9u/output/933b32f8-830d-4861-6e81-294f5d07d4fc_f2d/primaryGraphics.f2d"
role: "graphics"
size: 503288
mime: "application/autodesk-f2d"
guid: "c7624064-cb61-933b-787c-e02bef313ea4"
type: "resource"
status: "success"
1:
urn: "urn:adsk.viewing:fs.file:dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6YTM2MHZpZXdlci90NjM3MzA1OTg3ODExMjQxMTQ4XzQxYjE3M2M1LTVmZjctNDQ2ZC1iNTFkLTgwZTg1NjQ3NjU3ZC5jb2xsYWJvcmF0aW9u/output/933b32f8-830d-4861-6e81-294f5d07d4fc_f2d/section_properties.db"
role: "Autodesk.CloudPlatform.PropertyDatabase"
size: 24576
mime: "application/autodesk-db"
guid: "20392091-d0da-d74d-741f-904b078b9c0a"
type: "resource"
status: "success"
2:
guid: "a3a9ad7f-b9aa-451e-8bbc-da2972137d82"
type: "view"
role: "2d"
name: "INITIAL"
viewbox:
0: 0.67
1: 0.575
2: 16.330833
3: 10.423333
1:
guid: "d6e600db-d158-d84f-3101-0a654aa29df3"
type: "geometry"
role: "2d"
name: "C-424305-036-C-424305-036-00"
status: "success"
size: 617457
hasThumbnail: "true"
progress: "complete"
success: "100%"
viewableID: "com.autodesk.dwf.ePlot_87CBE467-EAB2-43C0-BA0A-D148B3418FF3"
order: 1
children:
0:
urn: "urn:adsk.viewing:fs.file:dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6YTM2MHZpZXdlci90NjM3MzA1OTg3ODExMjQxMTQ4XzQxYjE3M2M1LTVmZjctNDQ2ZC1iNTFkLTgwZTg1NjQ3NjU3ZC5jb2xsYWJvcmF0aW9u/output/d6e600db-d158-d84f-3101-0a654aa29df3_f2d/primaryGraphics.f2d"
role: "graphics"
size: 535065
mime: "application/autodesk-f2d"
guid: "441471cc-a249-1b4e-36dd-7ea4bff584cd"
type: "resource"
status: "success"
1:
urn: "urn:adsk.viewing:fs.file:dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6YTM2MHZpZXdlci90NjM3MzA1OTg3ODExMjQxMTQ4XzQxYjE3M2M1LTVmZjctNDQ2ZC1iNTFkLTgwZTg1NjQ3NjU3ZC5jb2xsYWJvcmF0aW9u/output/d6e600db-d158-d84f-3101-0a654aa29df3_f2d/section_properties.db"
role: "Autodesk.CloudPlatform.PropertyDatabase"
size: 24576
mime: "application/autodesk-db"
guid: "03334fbb-15ce-446d-ff80-111dc8616642"
type: "resource"
status: "success"
2:
guid: "69f50589-0774-4cf3-9b21-8164c1e71027"
type: "view"
role: "2d"
name: "INITIAL"
viewbox:
0: 3.958333
1: 0.4325
2: 16.330833
3: 10.565
进一步的研究表明,用于调用的 ID 是 base64 编码的,解码它揭示了这一点:
urn:adsk.objects:os.object:a360viewer/t637305987811241148_41b173c5-5ff7-446d-b51d-80e85647657d.collaboration
解决方案
推荐阅读
- swift - 将 OpenSSL 添加到项目中时,应用程序在 TestFlight 版本启动时崩溃
- reactjs - 当我在反应路由器浏览器历史记录中执行“history.goBack()”时如何清除当前路由?
- node.js - 为什么我在 Heroku(使用 Nodejs)中看不到我的主页?
- javascript - 如何防止在字段中输入某些字符?
- node.js - 尝试上传 G-Cloud-Function 时出错
- flutter - 如何在 Hive (Flutter) 中存储列表?
- python - “PySide2.QtWidgets.QMainWindow”对象没有属性“setSizeGripEnabled”
- php - How do I "cancel" the update function in sql and php if there is an error?
- javascript - 在单个对象上使用键数组有什么好处:值对?
- reactjs - 如何将提取结果导出到另一个文件