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



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

从Stack Overflow上搜索,我发现像这样的问题,说你需要注册一个应用程序并创建一个应用程序密码,使用Azure。在我工作的组织中,我没有必要的权限这样做,也不能做任何需要管理员帐户的事情。所以我不能安装任何软件——我必须使用Windows 10自带的软件。我也不能使用VBA,因为它被阻止了。

我已经设法从OneDrive下载文件没有任何类似的,使用这里描述的过程:

  • 在任意一个浏览器中打开URL
  • 使用Ctrl+Shift+ i打开开发人员选项
  • 进入网络选项卡
  • 现在点击下载。不需要保存文件。当浏览器从服务器请求文件时,我们只需要网络活动。
  • 将出现一个新的条目,看起来像"download.aspx?…"。
  • 右键点击Copy → Copy as cURL.
  • 将复制的内容直接粘贴到终端,并附加"——output"文件。扩展名'将内容保存在文件中。扩展自终端不能显示二进制数据。

例子:

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

…一些长文本....cCtHR3NuTy82bWFtN1JBRXNlV2ZmekZOdWp3cFRsNTdJdjE2c2syZmxQamhGWnMwdkFBeXZlNWx2UkxDTkJic2hycGNGazVSTnJGUnY1Y1d0WjF5SDJMWHBqTjRmcUNUUWJxVnZYb1JjRG1WbEtjK0VIVWx2clBDQWNyZldid1R3PT08L1NQPg = =;

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

我发现这两个问题,但没有键盘快捷键上传,AFAICT。此外,终端用户将上传文件到我从OneDrive上与他们共享的文件夹中。打开Chrome或Edge作为一个最小化的窗口是可以的,但我不能把一个自动点击东西的窗口塞到他们的脸上——他们不会喜欢的。

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

我认为实现这一目标的最好和更安全的方法是使用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应用程序注册(您的管理员应该能够为您配置),以提供API访问Azure中的服务。使用API编写代码将更容易,更不复杂,更不用说更通用了。

这是一张旧票,但如果有人仍然对这个主题感兴趣,您可以使用以下命令行项目在OneDrive中上传或大或小的文件(至少与个人报价测试)。https://github.com/incognito1234/onedrive-client

请注意,在Azure中注册应用程序仍然是必要的。

最新更新