oneshow

module
v1.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 9, 2024 License: MIT

README

oneshow 一个简单的onedrive第三方命令行工具

功能

1.支持多帐号,可用su命令进行当前用户切换
2.支持通过ls命令,浏览网盘内的文件
3.支持文件的批量下载和上传,支持断点继传或下载
4.支持对文件搜索
5.支持单个移动文件或文件夹
6.删除文件到回收站
7.以web方式浏览和下载网盘文件,实验阶段
8.以webdav方式,挂载到设备,不支持修改文件和增加文件
9.支持linux和windows系统,其他设备请自行构建
10.支持通过配置文件,自定义使用自己的onedrive API
11.支持webdav挂载时,通过配置加速地址,以达到加速下载onedrive文件的目的
12.支持可断点下载的URL资源,直接上传到网盘,无需下载到本地后再上传

使用

直接执行oneshow,查看支持的命令,支持使用-h查看子命令的详细使用方法。可自建 .oneshow.json 配置文件,配置加速下载和使用自己的onedrive API功能。

执行oneshow回车

HELP ===========================
oneshow version v0.1.8 build time:2022-03-27 11:31:32 
================================


rm              remove a file or dir to trash

su              swich to other logined user

search          search files by key

ls              list onedrive path

users           list login users

u               upload a file or dir to onedrive

web             run this http super serivce (beta version)

webdav          run webdav service for onedirve (only read)(beta version)

info            show onedrive info

auth            get a auth for new user

saveUser        save current user to name

who             show current user name

mv              move file to other dir

d               download a file or dir or URL to local


首先通过oneshow auth增加一个用户的帐号配置,该操作请在桌面环境执行以及事先安装好浏览器,用户在浏览器上操作同意受权oneshow应用后,保存登录信息的文件会自动生成和保存在用户目录的~/.config/oneshow/.od.json文件中,其中~/.config/oneshow/用户的oneshow配置目录(所有配置皆放在这个目录下),然后通过oneshow saveUser alias,就保存了一个别名为alias的配置文件,当要使用这个账户时候通过oneshow su alias,切换到这个用户,主要通过配置目录下的.od_cur_user.id文件来指定当前用户,可通过oneshow who来查看当前用户是谁。

其他命令的用法,比如查询ls子命令帮助,可通过执行 oneshow ls -h 查看命令的详细使用方法。

usage: ls [OPTION] path

list onedrive path

-h  print help

-l  list files detail

其中path参数一定要为onedrive全路径,例如查询根目录,执行oneshow ls -l /

查看当前用户网盘容量和使用情况使用:

./oneshow info

查看当前使用的用户的别名:

./oneshow who

可通过环境变量oneshowuser来使用某个特定用户的onedrive,而忽略从.od_cur_user.id读取当前用户信息。比如存在u1用户,打印他的网盘配额信息,在linux下可使用命令:

oneshowuser=u1 ./oneshow info

删除目标文件/test,放入到回收站使用:

./oneshow rm /test

上传/test下所有文件到/other目录使用:

./oneshow u -s /test -f /other

下面命令是下载/test下的所有文件,到当前目录,可用-d ”下载目录“,来指定下载到目标目录:

./oneshow d /test

搜索网盘内关键字为key的所有名录和文件,加-d可显示文件或目录的全路径:

./oneshow search -d key

打开web服务,绑定到127.0.0.1:4444,通过访问,http://127.0.0.1:4444/vfs 浏览网盘和下载文件:

./oneshow web  -u 127.0.0.1:4444

开启一个webdav服务,绑定到127.0.0.1:4444,ubuntu下,打开文件管理的连接到服务器,通过dav://127.0.0.1:4444/ 就可将onedrive挂载到本地。该功能不支持上传功能和移动目录,支持设置密码认证,为了信息安全在远程启用webdav服务时候请开启https协议和加入帐号认证,浏览和下载、直接播放视频等功能经测试没有什么大问题。

./oneshow webdav -u 127.0.0.1:4444 -ss user_alias

下面命令为开启一个TLS通道webdav服务,认证的用户和密码为username、password,证书和密钥文件为test.crt、test.key,绑定的服务端口为4444,ss参数为指定的username,如果将多个用户挂载到同一个webdav进程以";"隔开多个用户,例如 -ss "u1;u2;u3"这样的形式,这样u1用户的webdav资源路径就为/u1

./oneshow webdav -user username -passwd password -c test.crt -k test.key -u :4444 -ss "u1;u2;u3"

由于在中国境内,没有onedrive服务器,访问国际版时速度非常不稳定,故提供一个加速接口功能。思路为将onedrive的下载链接,通过参数传递给加速的中间服务器,以达到加速目的。以我个人的经验,移动用户的最佳实践为cloudflare workers加上优选cloudflare CDN ip 这个方案非常稳定,在线看4k视频没有什么问题。oneshow程序的配置文件为.oneshow.json,请务必将该文件建在用户配置目录下。 配置文件为json格式,accelerated_api为加速地址,acceleration为加速开关,只有当acceleration为true而且accelerated_api不为空的情况下,才会生效加速功能。

{
    "accelerated_api":"https://exsample.com/fetch?url=",
    "acceleration":false
}

可通过oneshow程序配置文件.oneshow.json,使用自己的onedrive API。比如使用rclone的API 配置文件

{
    "accelerated_api":"https://exsample.com/fetch?url=",
    "acceleration":false,
    "client_id":"b15665d9-eda6-4092-8539-0eec376afd59",
    "client_secret":"qtyfaBBYA403=unZUP40~_#",
    "scope":"Files.Read Files.ReadWrite Files.Read.All Files.ReadWrite.All offline_access Sites.Read.All",
    "redirect_uri":"http://localhost:53682/"
}

构建

建议在linux下进行构建代码,下载代码后直接进入main文件夹执行make即可。 发布的二进制程序提供了linux和windows版本,但是最近的更改都没有在windows上进行测试。 对于mac用户,请自己进行构建。

版权声明

该软件使用rclone部分代码,基于MIT协议做出该声明,这部分代码用于解析onedrive api返回的json数据对应的结构体。使用的代码为 https://github.com/rclone/rclone/blob/master/backend/onedrive/api/types.go rclone项目地址: https://github.com/rclone/rclone/

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL