在我的file upload问题之后,我被文档中的Step 5卡住了。我得到一个400错误,提示我发送的一些数据是不正确的,但我想我已经完全匹配了代码。你知道吗
def create_version_for_file(self, file_name, project_id, folder_id, object_id):
url = '{}data/v1/projects/{}/items'.format(self.DOMAIN, project_id)
logger.info('Starting version create at %s for file_name %s, folder %s, object %s',
url, file_name, folder_id, object_id)
data = {
"jsonapi": {"version": "1.0"},
"data": {
"type": "items",
"attributes": {
"displayName": file_name,
"extension": {
"type": "items:autodesk.core:File",
"version": "1.0"
}
},
"relationships": {
"tip": {
"data": {
"type": "versions",
"id": "1"
}
},
"parent": {
"data": {
"type": "folders",
"id": folder_id
}
}
}
},
"included": [
{
"type": "versions",
"id": "1",
"attributes": {
"name": file_name,
"extension": {
"type": "versions:autodesk.core:File",
"version": "1.0"
}
},
"relationships": {
"storage": {
"data": {
"type": "objects",
"id": object_id
}
}
}
}
]
}
response = self.session.post(url, json=data, headers={
'content-type': 'application/vnd.api+json',
'accept': 'application/vnd.api+json'
})
if response.status_code != status.HTTP_201_CREATED:
logger.warn('Version create for %s failed with status %s: %s', file_name, response.status_code,
response.content)
return None
return json.loads(response.content)
但是,请求总是失败,如下所示:
Upload succeeded for README.md 2017-10-12 16:53:15,943
Starting version create at https://developer.api.autodesk.com/data/v1/projects/b.f19577f2-c4da-428f-9625-bb53bf434cca/items for file_name README.md, folder urn:adsk.wipprod:fs.folder:co.Hx1ePxPtS1e0P-Ib9qudyQ, object urn:adsk.objects:os.object:3a06e38e-4cac-4ffc-981f-0e5c4e4078aab.f19577f2-c4da-428f-9625-bb53bf434cca/d14c3591-d339-4e62-907c-6f0c8b58b743.md
Version create for README.md failed with status 400: {"jsonapi":{"version":"1.0"},"errors":[{"id":"bfbf0a93-c92a-47af-9ce7-a6af48594e44","status":"400","code":"BAD_INPUT","title":"One or more input values in the request were bad","detail":"Request input is invalid for this operation."}]}
在上面的日志中,所有变量的示例值都位于右侧。你知道吗
从这个forum response,the tutorial已经过时了,你应该用
autodesk.bim360:File
(而不是像排版建议的autodedsk.bim360:File
)来代替autodesk.core:File
。最近有一个example here.。你知道吗它仍然不起作用,但至少我的错误转移到了
The urn must be an unassigned urn prepared by the create storage endpoint, by the same user.
这可能是正确的设置,但可能您的存储位置创建在不正确的文件夹中。根据我在论坛帖子中建议的教程,您需要向下导航一级,以避免在bim360文档的根文件夹上创建存储位置。试着回到你的步骤,按照教程中的建议做。专注于第四步
授权Web流(这将返回获取oauth令牌所需的代码)
Rest调用验证API以获取3腿令牌GET调用以获取我们在BIM 360文档中可以访问哪些集线器的详细信息(注册BIM 360 API访问所需的应用程序)
获取呼叫以查找包含您的资源的项目
GET call查找将进行上载的文件夹(平面图、项目文件、图形)。你知道吗
4.1额外步骤可以包括访问子文件夹。
POST call在先前定义的文件夹中创建存储位置
调用PUT将文件上载到存储位置
POST调用创建上载文件的第一个版本。
查看BIM 360文档以查看最近上载的文件。你知道吗
相关问题 更多 >
编程相关推荐