OneDrive for Business

    [ Linux Shell ] OneDrive for Business


    特性:

  • 1.支持文件夹上传.
  • 2.支持获取文件的匿名直链.
  • 3.纯shell支持.

  • 需求:

  • curl
    用于访问 API.
  • grep cut
    用于处理 json.
  • xargs
    用于多线程上传.
  • dd
    用于上传时使大文件分块.
  • stat
    用于读取文件大小.

  • 额外需求:

  • 能进入Azure AD,并且拥有创建Web程序的权限.

  • 以下步骤是旧版UI,对于新版UI,可以参考:
  • [NEW] OneDrive for Business in Linux


      开始:
      需要按照以下步骤在Microsoft Azure Management Portal创建一个应用,并生成Client IDClient secret.

    1. 点击左侧的 Active Directory .
    2. 进入你的目录.
    3. 点击页面上方 应用程序 栏目.
    4. 点击页面下方 添加 按钮 .
    5. 选择 添加我的组织正在开发的应用程序 .
    6. 输入应用名字,例如:OneDrive for Linux,
      并选择类型为: Web 应用程序和/或 Web API .
    7. 登录 URL处填写:
      https://login.microsoftonline.com/.
    8. 应用程序 ID URI处填写:
      https://onedrive.live.com/about/business/.
    9. 提交表单.
    10. 打开刚才创建的应用程序,并点击页面上方的 配置 栏目.
    11. 修改 回复 URL 为:
      https://onedrive.live.com/about/business/
    12. 添加密钥,选择 1年 (选择 2年,永久 可能不会正常工作.),点击页面下方的保存按钮,并复制保存生成的Client secret.
    13. 复制保存你的 客户端 ID .
    14. 下拉页面至底部,点击 添加应用程序 .
    15. 选择 Office 365 SharePoint Online 并提交表单.
    16. Windows Azure Active Directory 那一项点击 委托的权限 ,
      赋予 Sign in and read user profile 权限.
    17. Office 365 SharePoint Online 那一项点击 委托的权限 ,
      赋予 Read user filesRead and write user files 权限.
    18. 点击页面下方的 保存 按钮.

    完成以上步骤后,你将拥有以下三个参数:

  • Client ID: ea2b36f6-b8ad-40be-bc0f-e5e4a4a7d4fa
  • Secret: EIVCx5ztMSxMsga18MQ7rmGf9EIP7zv6tfimb0Kp5Uc=
  • Reply URL: https://onedrive.live.com/about/business/

  • 安装OneDrive for Business:


    请将三个参数填入/usr/local/etc/OneDrive/onedrive.cfg.
    如下示例:

    export api_client_id="ea2b36f6-b8ad-40be-bc0f-e5e4a4a7d4fa"
    export api_client_secret="h27zG8pr8BNsLU0JbBh5AOznNS5Of5Y540l/koc7048="
    export api_reply_url="https://onedrive.live.com/about/business/"


      当以上步骤全部完成,你需要运行账号认证程序:

    1. root@MoeClub.org:~#onedrive -a
    2. 打开浏览器,将返回的网址复制到浏览器中.
    3. 登陆你的OneDrive for Business账号.
    4. 登陆成功后复制地址栏中的地址,并提取code的字段.
      (就是code=后面至&前面)
    5. 粘贴至终端,并敲回车键.

    如果返回以下字段:
    It seems like we have a refresh token, so we are ready to go
    恭喜你,设置成功!
    如果返回错误信息,请检查code字段,或重新生成密钥.



    如遇401错误,请检查文件名是否符合OneDrive for Business命名规则.


    Click to View Github.

  1. QQWW说道:

    老大,是否能加一下图片,好多东西找不到在哪,是不是你的版本不一样?

  2. 感谢博主说道:

    可以用,但是下载的时候感觉很麻烦啊。要获取链接再用wget下载。复制粘贴好几次

  3. kenray说道:

    Usage: onedrive [OPTIONS] file1 [file2...]
    onedrive-d folder

    萌新这句用不来哇 dalao

  4. 清风明月说道:

    上传时目录大于4层后会报错。

  5. xiaoxia说道:

    未能创建 OneDrive for Linux 应用程序。错误详细信息: 权限不足,无法完成该操作。

  6. wchao说道:

    高手

  7. 现在不行了,查看用户信息只有管理员授权才行,注册个你的看大腿还能再抱不能,如果没翻车,希望能一直分享clinet

  8. 飞行的胖子说道:

    怎么上传到onedrive 指定目录呢

  9. 南猫说道:

    ‘’登陆成功后复制地址栏中的地址,并提取code的字段.(就是code=后面至&前面)‘’这一步我的code字段里没有‘&’这个字符,然后我把 code= 后面的复制到终端按回车键,显示 command not found
    :cry: :cry:

  10. Aozorawings说道:

    没有文件夹同步功能吗?为什么我直接输入通配符结果只有第一层目录可以上传,其他的都不能上传。

  11. YBurger说道:

    博主,我用起来出现了一点问题。我onedrive for Linux使用onedrive -a命令认证成功了,但是,没法上传文建,输入上传命令测试发现提示,can't create “xx”in“xx”,请帮忙分析一下这是什么原因?

发表评论

电子邮件地址不会被公开。 必填项已用*标注