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

Ne *_* Mo 5 powershell curl file-upload onedrive invoke-webrequest

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

\n

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

\n

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

\n
\n
    \n
  • 在任一浏览器中打开 URL。
  • \n
  • 使用 Ctrl+Shift+I 打开开发人员选项。
  • \n
  • 转到网络选项卡。
  • \n
  • 现在点击下载。不需要保存文件\xe2\x80\x99。我们只需要浏览器从服务器请求文件时的网络活动。
  • \n
  • 将出现一个新条目,类似于 \xe2\x80\x9cdownload.aspx?\xe2\x80\xa6\xe2\x80\x9d。
  • \n
  • 右键单击该 和Copy \xe2\x86\x92 Copy as cURL
  • \n
  • 将复制的内容直接粘贴到终端中,并追加 \xe2\x80\x98--output file.extension\xe2\x80\x99 将内容保存在 file.extension 中,因为\n终端无法显示二进制文件数据。
  • \n
\n

例子:

\n
curl https://xyz.sharepoint.com/personal/someting/_layouts/15/download.aspx?UniqueId=cefb6082%2D696e%2D4f23%2D8c7a%2\n
Run Code Online (Sandbox Code Playgroud)\n

\xe2\x80\xa6。一些长文本 \xe2\x80\xa6.\ncCtHR3NuTy82bWFtN1JBRXNlV2ZmekZOdWp3cFRsNTdJdjE2c2syZmxQamhGWnMwdkFBeXZlNWx2UkxDTkJic2hycGNGazVSTnJGUnY1Y1d0WjF5SDJMWHBqTjRmcUNUU WJxVnZYb1JjRG1WbEtjK0VIVWx2clBDQWNyZldid1R3PT08L1NQPg==;\ncucg=1\xe2\x80\x99 --压缩--输出文件.扩展名

\n
\n

在浏览器上单击“上传”后,我尝试执行类似的操作,但在尝试过滤请求时没有找到任何有用的东西。

\n

我找到了 两个问题,但没有上传键盘快捷键,AFAICT。此外,最终用户还将文件上传到我从 OneDrive 与他们共享的文件夹中。将 Chrome 或 Edge 作为最小化窗口打开很好,但我不能只是将一个窗口推到他们面前,自动点击一些东西 - 他们不会喜欢那样。

\n

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

\n

小智 5

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

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

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

您仍然需要 Azure AD 应用程序注册(您的管理员应该能够为您配置),以提供对 Azure 中的服务的 API 访问。使用 API 进行编码将变得更加容易且简单,更不用说更加通用了。

  • @NeMo 这无疑是最好的解决方案。我建议向您的管理员制作一个业务案例,说明为什么您需要应用程序注册以及为什么它对业务很重要。他们只能授予您的应用程序所需的权限;您的应用程序不应该“需要”任何管理员权限来满足您的要求。 (3认同)