【发布时间】:2018-03-23 18:41:00
【问题描述】:
我正在遵循here 描述的过程,但在第 4 步被403 阻止。我有一个带有data:write 和data:create 作用域的令牌specified in the docs(以及需要这些作用域的其他API 方法) ) 但我无法获得成功的响应,我认为这取决于我如何发送文件数据。我的代码如下所示:
url = '{}oss/v2/buckets/{}/objects/{}'.format(self.DOMAIN, bucket_id, object_name)
with open(file_path, 'rb') as f:
file_content = f.read()
response = self.session.put(url, data=file_content, headers={
'content-type': 'application/octet-stream'
}
身份验证令牌已包含在会话的标头中。以下是上传过程的日志:
INFO Creating storage for README.md file in Test Project project, folder urn:adsk.wipprod:fs.folder:co.XXXXXXXXXXXXXXXX
INFO Storage success, start PUT file to https://developer.api.autodesk.com/oss/v2/buckets/:wip.dm.prod/objects/eb0e0379-9958-45b5-8bb0-5f4111b7a037.md
WARNING Upload failed, status 403: {"developerMessage":"ACM check failed, user or calling service does not have access to perform this operation","userMessage":"","errorCode":"AUTH-012","more info":"http://developer.api.autodesk.com/documentation/v1/errors/AUTH-012"}
【问题讨论】:
-
很难根据如此简单的描述来判断...你能显示 bucket_id 和 objet_name 吗?他们是正确的吗?您只能将单个资源上传到在步骤 3 中创建的给定存储。此外,错误响应应包含元数据以及可能提供提示的 http 代码
-
@PhilippeLeefsma 是的,信息正确,存储桶和对象信息在上一步中正常工作。元数据只是告诉我我有一个权限问题,这似乎具有误导性,因为前面的步骤(以及我正在做的每一点)都适用于相同的令牌范围。
-
我已经添加了我返回的日志,需要更正我最后的评论:我不知道bucket id根据之前的存储请求是否正确,所以我将重点关注找出来。与其他 id 相比,我上面日志中的存储桶 id 似乎相对较短。
标签: python python-requests autodesk-forge