我可以通过 Windows10 命令行上传文件到 onedrive 吗?

Can I upload a file to onedrive via Windows 10 command line?

我需要通过命令行将文件上传到 OneDrive。这将通过分发给最终用户的批处理文件来完成。

通过在 Stack Overflow 上搜索,我找到了类似 this one 的问题,这些问题表明您需要使用 Azure 注册应用程序并创建应用程序密码。我没有在我工作的组织中执行此操作的必要权限,也不能执行任何需要管理员帐户的操作。所以我不能安装任何软件 - 我必须使用 Windows 10 附带的软件。我也不能使用 VBA,因为它被阻止了。

我已经成功地从 OneDrive 下载文件,没有任何类似的东西,使用描述的过程 here:

  • Open the URL in either of the browser.
  • Open Developer options using Ctrl+Shift+I.
  • Go to Network tab.
  • Now click on download. Saving file isn’t required. We only need the network activity while browser requests the file from the server.
  • A new entry will appear which would look like “download.aspx?…”.
  • Right click on that and Copy → Copy as cURL.
  • Paste the copied content directly in the terminal and append ‘--output file.extension’ to save the content in file.extension since terminal isn’t capable of showing binary data.

Example:

curl https://xyz.sharepoint.com/personal/someting/_layouts/15/download.aspx?UniqueId=cefb6082%2D696e%2D4f23%2D8c7a%2

…. some long text …. cCtHR3NuTy82bWFtN1JBRXNlV2ZmekZOdWp3cFRsNTdJdjE2c2syZmxQamhGWnMwdkFBeXZlNWx2UkxDTkJic2hycGNGazVSTnJGUnY1Y1d0WjF5SDJMWHBqTjRmcUNUUWJxVnZYb1JjRG1WbEtjK0VIVWx2clBDQWNyZldid1R3PT08L1NQPg==; cucg=1’ --compressed --output file.extension

我在浏览器上点击 'upload' 后尝试做类似的事情,但在尝试过滤请求时没有发现任何有用的东西。

我发现了 these two 个问题,但是没有键盘快捷键可以上传,AFAICT。此外,最终用户会将文件上传到我从我的 OneDrive 与他们共享的文件夹中。打开 Chrome 或 Edge 作为最小化的 window 很好,但我不能只是将 window 推到他们的脸上,这样会自动点击东西 - 他们不会喜欢那样。

我刚刚想到我可以使用办公应用程序将文件另存为必要的 onedrive 文件夹,其中键盘快捷键非常稳定,但不知道如何通过命令实现行。

我认为实现此目标的最佳且更安全的方法是使用 OneDrive 的 Rest API。

(小文件 <4MB) https://docs.microsoft.com/en-us/onedrive/developer/rest-api/api/driveitem_put_content?view=odsp-graph-online

(大文件) https://docs.microsoft.com/en-us/onedrive/developer/rest-api/api/driveitem_createuploadsession?view=odsp-graph-online

您仍然需要 Azure AD 应用程序注册(您的管理员应该能够为您配置),以提供对 Azure 中服务的 API 访问权限。使用 API 编写代码会更容易、更简单,更不用说更通用了。