azure - 如何在不创建应用程序的情况下使用图形 API 上传到 onedrive
问题描述
我有一个输出 .csv 文件的脚本。我想把它上传到onedrive。
由于没有权限,我无法创建应用程序。我检查了 az cli 的 rest 选项,由于访问令牌没有正确的访问权限,我收到 Error not found。
目前我正在使用 python 请求模块上传到 onedrive。我在 API 请求的授权标头中使用来自图形资源管理器的访问令牌。这样我就可以将文件上传到onedrive。
来自az account get-access-token输出的访问令牌导致 401 错误。使用图形资源管理器的访问令牌时,它正在正确上传带有 201 状态代码的文件。
使用这种方式是否有任何安全问题?即使是 cli 脚本,我们是否需要在 azure 中注册应用程序?
谢谢
解决方案
谢谢你的问题。来自 Graph Explorer 的访问令牌有效,因为登录用户正在请求令牌。要上传文件,应同意委派的权限 Files.ReadWrite,这不需要管理员同意。虽然您的解决方法有效,但这不是推荐的方式,并且脚本采取的操作将归因于在获取令牌时登录到 GE 的用户。由于您的脚本应该在后台运行,您需要在租户上注册一个应用程序,为应用程序授予 Files.ReadWrite.All 权限- 这需要管理员同意 - 然后请求访问令牌并上传文件。
让我知道这是否有帮助,如果您还有其他问题,
推荐阅读
- arduino - Arduino IDE:esptool.FatalError:数据包头无效
- python - 如何从 numpy 子数组中删除 NaN
- r - 通过检查一列是否包含另一列的字符串来连接数据框?
- node.js - Nodejs spawn script.exe ENOENT
- python - 我正在设置一个 TCP 客户端/服务器程序,用于区分 Python 3 中的 X 和 Y 两个客户端。我在处理线程时遇到了困难
- javascript - Next JS getServerSideProps 在 Vercel 中获取令牌时尝试阻止失败
- python - Tkinter 滚动条对我的画布大小没有反应
- reactjs - redux 工具包中的 extraReducers 没有捕捉到动作
- javascript - Chrome 的 Ctrl+F 是如何实际应用搜索高亮的?
- docker - 扩展 Dockerfile nginx 镜像