file-upload - 如何通过 FORGE API 设置上传文件的良好权限?
问题描述
我必须将文件从服务器上传到文档管理,但上传文件步骤出现问题。有关信息,我使用 Dynamics NAV 编写脚本。
在从 Dynamics NAV 上传之前,我尝试使用 Git Bash 和 cURL 命令:它可以工作。
这是我拥有的权限: 见这里
这是所有步骤,我能做什么:
- 查找我要上传的文件夹的 HubID(完成)
- 创建存储位置(完成)
- 上传文件(失败)
- 创建第一个版本。
当我执行上传步骤时,出现错误 401 : Forbidden 但我不知道应该去哪里设置好的权限。
这是 cURL 命令:
curl -X PUT -H "Authorization: Bearer nq4dc0KRWeaaUnyIJA8aN0MIKi3j"
--data-binary '@\\server\folder\subfolder\file.rvt'
"https://developer.api.autodesk.com/oss/v2/buckets/wip.dm.prod/objects/2448af43-45f3-4b81-a8cf-38c69b03197b.rvt"
所以看到这个之后,我不需要为上传文件设置特殊权限。
这是我的 Dynamics Nav 代码:
HttpWebRequestMgt.Initialize(STRSUBSTNO('https://developer.api.autodesk.com/oss/v2/buckets/wip.dm.prod/objects/%1',Filename));
HttpWebRequestMgt.DisableUI;
HttpWebRequestMgt.SetMethod('PUT');
HttpWebRequestMgt.SetContentType('application/octet-stream');
HttpWebRequestMgt.AddHeader('Authorization','Bearer ' + Token);
FileManagement.BLOBImportFromServerFile(TempBlob,ServerFolder+'\'+Filename);
HttpWebRequestMgt.AddBodyBlob(TempBlob);
CLEAR(TempBlob);
TempBlob.Blob.CREATEINSTREAM(ResponseInStream);
HttpWebRequestMgt.GetResponse(ResponseInStream,HttpStatusCode,ResponseHeaders);
ResponseInStream.READTEXT(ResponseText);
CLEAR(HttpWebRequestMgt);
CLEAR(TempBlob);
有了这个我需要一个特定的权限......
一些建议?
解决方案
问题应该与您的 access_token 有关。首先,您需要通过 API https://developer.autodesk.com/en/docs/oauth/v2/tutorials/get-3-legged-token/获取您的 3-legged 访问令牌,以上传文件,请确保具有“数据:创建”或“数据:写入范围”的范围,有关详细信息,请参阅页面https://developer.autodesk.com/en/docs/data/v2/tutorials/upload-文件/ .
希望能帮助到你。
推荐阅读
- android - 检索数据后 Firestore Spinner 错误传递列表
- python-3.x - 从字典更新 Firestore
- javascript - 复制设计 HTML 的表格行
- delphi - Delphi XE4 中动态创建的 TPopup 菜单不会调用其项目的 OnClick 事件处理程序
- c# - Unity,得到“实际”的当前地形?
- reactjs - Reactjs Boostrap 表获取 ID?
- paypal - 尽管支付订阅成功,Paypal 仍返回“INVALID”
- visual-studio - 如何在不安装 Visual Studio 的情况下设置 Windows 构建从站以支持 Unity3D 构建?
- php - Laravel 问题凭证与我们的记录不匹配
- unix - Systemctl 启动多个命令