summaryrefslogtreecommitdiff
path: root/python-aliyunpan.spec
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-15 04:52:08 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-15 04:52:08 +0000
commit1c9b46a034f1b69d8503de12c3365137260c4d4b (patch)
tree585707623ae84bd9b5a7eacb9a275a0110735799 /python-aliyunpan.spec
parent17e37d6ab13df5635324b7b21460e913c5812c22 (diff)
automatic import of python-aliyunpan
Diffstat (limited to 'python-aliyunpan.spec')
-rw-r--r--python-aliyunpan.spec1125
1 files changed, 1125 insertions, 0 deletions
diff --git a/python-aliyunpan.spec b/python-aliyunpan.spec
new file mode 100644
index 0000000..e8a171f
--- /dev/null
+++ b/python-aliyunpan.spec
@@ -0,0 +1,1125 @@
+%global _empty_manifest_terminate_build 0
+Name: python-aliyunpan
+Version: 3.0.9
+Release: 1
+Summary: aliyunpan cli
+License: GNU General Public License v3 (GPLv3)
+URL: https://github.com/wxy1343/aliyunpan
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/4c/ac/0f2a3c21e3bd2010b4fd6267172a9aaacbb0e9f3a397ee92626f66826a59/aliyunpan-3.0.9.tar.gz
+BuildArch: noarch
+
+
+%description
+阿里云盘cli
+环境要求: python 3.7 通过测试
+~~低版本环境运行报错参考~~[~~issue9~~](https://github.com/wxy1343/aliyunpan/issues/9)
+## 安装
+```shell
+pip install aliyunpan
+```
+## 更新
+```shell
+pip install aliyunpan --upgrade
+```
+## 运行
+```shell
+aliyunpan-cli
+```
+## pyinstaller打包
+[最新版下载](https://github.com/wxy1343/aliyunpan/releases/latest) (GitHub
+Actions打包,glibc版本较高 [#42](https://github.com/wxy1343/aliyunpan/issues/42))
+[第三方下载](https://media.cooluc.com/source/aliyunDrive-cli) (更新较慢)
+## 克隆项目
+* `--recurse-submodules` 用于克隆子模块,部分功能需要(可选)
+```shell
+git clone https://github.com/wxy1343/aliyunpan --recurse-submodules
+```
+## 获取refresh_token
+![token](https://github.com/wxy1343/aliyunpan/raw/main/token.png)
+### 注意
+* web端获取的refresh_token有防盗链检测
+1. 可以指定账号密码登入
+2. 可以通过手机端查找日志获取refresh_token
+> /sdcard/Android/data/com.alicloud.databox/files/logs/trace/userId/yunpan/latest.log
+* ~~登录api加入了ua检测,需要运行混淆的js代码来获取ua~~
+* ~~推荐安装 [node.js](https://nodejs.org) 和 [jsdom](https://github.com/jsdom/jsdom) 模块来运行js代码~~
+* 目前阿里云盘修改了ua的算法,加入了鼠标移动之类的信息,如果有解决方法的欢迎来[pr](https://github.com/wxy1343/aliyunpan/pulls)
+```shell
+npm install jsdom
+```
+### 配置refresh_token
+```shell
+echo "refresh_token: 'xxxxx'" > ~/.config/aliyunpan.yaml
+```
+### 配置账号(可选)
+```shell
+echo "username: 'xxxxx'" > ~/.config/aliyunpan.yaml
+echo "password: 'xxxxx'" >> ~/.config/aliyunpan.yaml
+```
+### 配置aria2(可选)
+```shell
+cat >> ~/.config/aliyunpan.yaml <<EOF
+aria2:
+ 'host': 'http://localhost'
+ 'port': 6800
+ 'secret': ''
+EOF
+```
+## 功能介绍
+|指令 |描述 |
+|-----------------------|------------------------------|
+|download (d) |下载文件/文件夹 |
+|ls (dir,l,list) |列目录 |
+|mv (move) |移动文件/文件夹 |
+|rm (del,delete) |删除文件/文件夹 |
+|rename (r) |重命名文件/文件夹 |
+|tree (show,t) |查看文件树 |
+|upload (u) |上传文件/文件夹 |
+|share (s) |分享文件 |
+|mkdir (m) |创建文件夹 |
+|cat (c) |显示文件内容 |
+|tui |文本用户界面 |
+|search |搜索文件/文件夹 |
+|sync |同步文件夹 |
+|token (r,refresh_token)|查看refresh_token |
+## 使用指南
+* 查看帮助
+```shell
+aliyunpan-cli -h
+```
+<details>
+ <summary>查看详情</summary>
+ <table>
+ <tbody>
+ <tr>
+ <td>参数</td>
+ <td>描述</td>
+ </tr>
+ <tr>
+ <td>-h, --help</td>
+ <td>查看帮助</td>
+ </tr>
+ <tr>
+ <td>--version</td>
+ <td>查看版本</td>
+ </tr>
+ <tr>
+ <td>-c, --config-file</td>
+ <td>指定配置文件</td>
+ </tr>
+ <tr>
+ <td>-t, --refresh-token</td>
+ <td>指定REFRESH_TOKEN</td>
+ </tr>
+ <tr>
+ <td>-u, --username</td>
+ <td>指定账号</td>
+ </tr>
+ <tr>
+ <td>-p, --password</td>
+ <td>指定密码</td>
+ </tr>
+ <tr>
+ <td>-d, --depth</td>
+ <td>文件递归深度</td>
+ </tr>
+ <tr>
+ <td>-T, --timeout</td>
+ <td>请求超时时间(秒)</td>
+ </tr>
+ <tr>
+ <td>-id, --drive-id</td>
+ <td>指定drive_id</td>
+ </tr>
+ <tr>
+ <td>-a, --album</td>
+ <td>是否访问相册</td>
+ </tr>
+ <tr>
+ <td>-s, --share-id</td>
+ <td>指定分享id</td>
+ </tr>
+ <tr>
+ <td>-sp, --share-pwd</td>
+ <td>指定分享密码</td>
+ </tr>
+ <tr>
+ <td>-f, --filter-file</td>
+ <td>过滤文件(多个)</td>
+ </tr>
+ <tr>
+ <td>-w, --whitelist</td>
+ <td>使用白名单过滤文件</td>
+ </tr>
+ <tr>
+ <td>-m, --match</td>
+ <td>指定使用正则匹配文件</td>
+ </tr>
+ </tbody>
+ </table>
+</details>
+* 查看指令参数
+```shell
+aliyunpan-cli COMMAND -h
+```
+<details>
+ <summary>查看详情</summary>
+ <table>
+ <tbody>
+ <tr>
+ <td>指令</td>
+ <td>参数</td>
+ <td>描述</td>
+ </tr>
+ <tr>
+ <td>download</td>
+ <td>-p, --file</td>
+ <td>选择文件(多个)</td>
+ </tr>
+ <tr>
+ <td>download</td>
+ <td>-s, --share</td>
+ <td>指定分享的序列文件</td>
+ </tr>
+ <tr>
+ <td>download</td>
+ <td>-cs, --chunk-size</td>
+ <td>分块大小(字节)</td>
+ </tr>
+ <tr>
+ <td>download</td>
+ <td>-a, --aria2</td>
+ <td>发送到aria2</td>
+ </tr>
+ <tr>
+ <td>ls,search</td>
+ <td>-l</td>
+ <td>查看详情</td>
+ </tr>
+ <tr>
+ <td>share</td>
+ <td>-p, --file</td>
+ <td>指定文件(多个)</td>
+ </tr>
+ <tr>
+ <td>share</td>
+ <td>-f, --file-id</td>
+ <td>指定file_id(多个)</td>
+ </tr>
+ <tr>
+ <td>share</td>
+ <td>-t, --expire-sec</td>
+ <td>分享过期时间(秒),默认最大14400</td>
+ </tr>
+ <tr>
+ <td>share</td>
+ <td>-l, --share-link</td>
+ <td>输出分享链接</td>
+ </tr>
+ <tr>
+ <td>share</td>
+ <td>-d, --download-link</td>
+ <td>输出下载链接</td>
+ </tr>
+ <tr>
+ <td>share</td>
+ <td>-s, --save</td>
+ <td>保存序列文件到云盘和本地</td>
+ </tr>
+ <tr>
+ <td>share</td>
+ <td>-S, --share-official</td>
+ <td>官方分享功能(需要账号支持)</td>
+ </tr>
+ <tr>
+ <td>upload</td>
+ <td>-p, --file</td>
+ <td>选择文件(多个)</td>
+ </tr>
+ <tr>
+ <td>upload,sync</td>
+ <td>-t, --time-out</td>
+ <td>分块上传超时时间(秒)</td>
+ </tr>
+ <tr>
+ <td>upload,sync</td>
+ <td>-r, --retry</td>
+ <td>上传失败重试次数</td>
+ </tr>
+ <tr>
+ <td>upload</td>
+ <td>-f, --force</td>
+ <td>强制覆盖文件</td>
+ </tr>
+ <tr>
+ <td>upload</td>
+ <td>-s, --share</td>
+ <td>指定分享的序列文件</td>
+ </tr>
+ <tr>
+ <td>upload,sync</td>
+ <td>-cs, --chunk-size</td>
+ <td>分块大小(字节)</td>
+ </tr>
+ <tr>
+ <td>upload</td>
+ <td>-c</td>
+ <td>断点续传</td>
+ </tr>
+ <tr>
+ <td>cat</td>
+ <td>-e, --encoding</td>
+ <td>文件编码</td>
+ </tr>
+ <tr>
+ <td>sync</td>
+ <td>-st, --sync-time</td>
+ <td>同步间隔时间</td>
+ </tr>
+ <tr>
+ <td>sync</td>
+ <td>--no-delete, -n</td>
+ <td>不删除(云盘/本地)文件(默认)</td>
+ </tr>
+ <tr>
+ <td>sync</td>
+ <td>-d, --delete</td>
+ <td>允许删除(云盘/本地)文件</td>
+ </tr>
+ <tr>
+ <td>sync</td>
+ <td>-l, --local</td>
+ <td>同步云盘文件到本地</td>
+ </tr>
+ <tr>
+ <td>token</td>
+ <td>--refresh, -r</td>
+ <td>刷新配置文件token</td>
+ </tr>
+ <tr>
+ <td>token</td>
+ <td>--refresh-time, -t</td>
+ <td>自动刷新token间隔时间(秒)</td>
+ </tr>
+ <tr>
+ <td>token</td>
+ <td>--change, -c</td>
+ <td>设置新的refresh_token</td>
+ </tr>
+ </tbody>
+ </table>
+</details>
+### 断点续传
+* 将文件分成多块顺序上传
+* 文件上传进度保存在当前目录下的tasks.yaml
+* 格式
+ ```yaml
+ 文件sha1:
+ path: 绝对路径
+ upload_id: 上传id
+ file_id: 文件id
+ chunk_size: 分块大小
+ part_number: 最后上传的分块编号
+ ```
+* 文件未上传成功时,CTRL+C会自动保存
+* 断点续传需带上参数-c
+### 分享
+* 由于官方修改秒传接口导致该功能失效
+* 暂时采用在秒传链接中加入直链的方法用以获取proof_code
+* 分享秒传文件时需要通过直链获取文件随机8字节,导致速度较慢
+* 由于直链的局限,秒传链接有效期为4小时
+1.分享链接格式
+```
+aliyunpan://文件名|sha1|url_base64|文件大小|相对路径
+```
+例如
+* 以下秒传链接均已失效,仅供参考
+```
+aliyunpan://示例文件.txt|F61851825609372B3D7F802E600B35A497CFC38E|url_base64|24|root
+```
+2.文件分享
+```shell
+aliyunpan-cli share 示例文件.txt
+```
+导入
+```shell
+aliyunpan-cli upload "aliyunpan://示例文件.txt|F61851825609372B3D7F802E600B35A497CFC38E|url_base64|24|root"
+```
+3.文件夹分享
+```shell
+aliyunpan-cli share 示例文件夹
+```
+导入
+```shell
+aliyunpan-cli upload -s "aliyunpan://示例文件夹|80E7E25109D4246653B600FDFEDD8D8B0D97E517|url_base64|970|root"
+```
+### TUI按键指南
+* 显示菜单(ctrl+x)
+* 退出(ctrl+c)
+* 切换标签(↑↓←→,kjhl,TAB)
+### 环境变量
+```ALIYUNPAN_CONF``` 配置文件路径
+```ALIYUNPAN_ROOT``` 根目录(log和tasks输出路径)
+## 致谢
+感谢 [zhjc1124/aliyundrive](https://github.com/zhjc1124/aliyundrive) 的登录接口参考
+
+%package -n python3-aliyunpan
+Summary: aliyunpan cli
+Provides: python-aliyunpan
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-aliyunpan
+阿里云盘cli
+环境要求: python 3.7 通过测试
+~~低版本环境运行报错参考~~[~~issue9~~](https://github.com/wxy1343/aliyunpan/issues/9)
+## 安装
+```shell
+pip install aliyunpan
+```
+## 更新
+```shell
+pip install aliyunpan --upgrade
+```
+## 运行
+```shell
+aliyunpan-cli
+```
+## pyinstaller打包
+[最新版下载](https://github.com/wxy1343/aliyunpan/releases/latest) (GitHub
+Actions打包,glibc版本较高 [#42](https://github.com/wxy1343/aliyunpan/issues/42))
+[第三方下载](https://media.cooluc.com/source/aliyunDrive-cli) (更新较慢)
+## 克隆项目
+* `--recurse-submodules` 用于克隆子模块,部分功能需要(可选)
+```shell
+git clone https://github.com/wxy1343/aliyunpan --recurse-submodules
+```
+## 获取refresh_token
+![token](https://github.com/wxy1343/aliyunpan/raw/main/token.png)
+### 注意
+* web端获取的refresh_token有防盗链检测
+1. 可以指定账号密码登入
+2. 可以通过手机端查找日志获取refresh_token
+> /sdcard/Android/data/com.alicloud.databox/files/logs/trace/userId/yunpan/latest.log
+* ~~登录api加入了ua检测,需要运行混淆的js代码来获取ua~~
+* ~~推荐安装 [node.js](https://nodejs.org) 和 [jsdom](https://github.com/jsdom/jsdom) 模块来运行js代码~~
+* 目前阿里云盘修改了ua的算法,加入了鼠标移动之类的信息,如果有解决方法的欢迎来[pr](https://github.com/wxy1343/aliyunpan/pulls)
+```shell
+npm install jsdom
+```
+### 配置refresh_token
+```shell
+echo "refresh_token: 'xxxxx'" > ~/.config/aliyunpan.yaml
+```
+### 配置账号(可选)
+```shell
+echo "username: 'xxxxx'" > ~/.config/aliyunpan.yaml
+echo "password: 'xxxxx'" >> ~/.config/aliyunpan.yaml
+```
+### 配置aria2(可选)
+```shell
+cat >> ~/.config/aliyunpan.yaml <<EOF
+aria2:
+ 'host': 'http://localhost'
+ 'port': 6800
+ 'secret': ''
+EOF
+```
+## 功能介绍
+|指令 |描述 |
+|-----------------------|------------------------------|
+|download (d) |下载文件/文件夹 |
+|ls (dir,l,list) |列目录 |
+|mv (move) |移动文件/文件夹 |
+|rm (del,delete) |删除文件/文件夹 |
+|rename (r) |重命名文件/文件夹 |
+|tree (show,t) |查看文件树 |
+|upload (u) |上传文件/文件夹 |
+|share (s) |分享文件 |
+|mkdir (m) |创建文件夹 |
+|cat (c) |显示文件内容 |
+|tui |文本用户界面 |
+|search |搜索文件/文件夹 |
+|sync |同步文件夹 |
+|token (r,refresh_token)|查看refresh_token |
+## 使用指南
+* 查看帮助
+```shell
+aliyunpan-cli -h
+```
+<details>
+ <summary>查看详情</summary>
+ <table>
+ <tbody>
+ <tr>
+ <td>参数</td>
+ <td>描述</td>
+ </tr>
+ <tr>
+ <td>-h, --help</td>
+ <td>查看帮助</td>
+ </tr>
+ <tr>
+ <td>--version</td>
+ <td>查看版本</td>
+ </tr>
+ <tr>
+ <td>-c, --config-file</td>
+ <td>指定配置文件</td>
+ </tr>
+ <tr>
+ <td>-t, --refresh-token</td>
+ <td>指定REFRESH_TOKEN</td>
+ </tr>
+ <tr>
+ <td>-u, --username</td>
+ <td>指定账号</td>
+ </tr>
+ <tr>
+ <td>-p, --password</td>
+ <td>指定密码</td>
+ </tr>
+ <tr>
+ <td>-d, --depth</td>
+ <td>文件递归深度</td>
+ </tr>
+ <tr>
+ <td>-T, --timeout</td>
+ <td>请求超时时间(秒)</td>
+ </tr>
+ <tr>
+ <td>-id, --drive-id</td>
+ <td>指定drive_id</td>
+ </tr>
+ <tr>
+ <td>-a, --album</td>
+ <td>是否访问相册</td>
+ </tr>
+ <tr>
+ <td>-s, --share-id</td>
+ <td>指定分享id</td>
+ </tr>
+ <tr>
+ <td>-sp, --share-pwd</td>
+ <td>指定分享密码</td>
+ </tr>
+ <tr>
+ <td>-f, --filter-file</td>
+ <td>过滤文件(多个)</td>
+ </tr>
+ <tr>
+ <td>-w, --whitelist</td>
+ <td>使用白名单过滤文件</td>
+ </tr>
+ <tr>
+ <td>-m, --match</td>
+ <td>指定使用正则匹配文件</td>
+ </tr>
+ </tbody>
+ </table>
+</details>
+* 查看指令参数
+```shell
+aliyunpan-cli COMMAND -h
+```
+<details>
+ <summary>查看详情</summary>
+ <table>
+ <tbody>
+ <tr>
+ <td>指令</td>
+ <td>参数</td>
+ <td>描述</td>
+ </tr>
+ <tr>
+ <td>download</td>
+ <td>-p, --file</td>
+ <td>选择文件(多个)</td>
+ </tr>
+ <tr>
+ <td>download</td>
+ <td>-s, --share</td>
+ <td>指定分享的序列文件</td>
+ </tr>
+ <tr>
+ <td>download</td>
+ <td>-cs, --chunk-size</td>
+ <td>分块大小(字节)</td>
+ </tr>
+ <tr>
+ <td>download</td>
+ <td>-a, --aria2</td>
+ <td>发送到aria2</td>
+ </tr>
+ <tr>
+ <td>ls,search</td>
+ <td>-l</td>
+ <td>查看详情</td>
+ </tr>
+ <tr>
+ <td>share</td>
+ <td>-p, --file</td>
+ <td>指定文件(多个)</td>
+ </tr>
+ <tr>
+ <td>share</td>
+ <td>-f, --file-id</td>
+ <td>指定file_id(多个)</td>
+ </tr>
+ <tr>
+ <td>share</td>
+ <td>-t, --expire-sec</td>
+ <td>分享过期时间(秒),默认最大14400</td>
+ </tr>
+ <tr>
+ <td>share</td>
+ <td>-l, --share-link</td>
+ <td>输出分享链接</td>
+ </tr>
+ <tr>
+ <td>share</td>
+ <td>-d, --download-link</td>
+ <td>输出下载链接</td>
+ </tr>
+ <tr>
+ <td>share</td>
+ <td>-s, --save</td>
+ <td>保存序列文件到云盘和本地</td>
+ </tr>
+ <tr>
+ <td>share</td>
+ <td>-S, --share-official</td>
+ <td>官方分享功能(需要账号支持)</td>
+ </tr>
+ <tr>
+ <td>upload</td>
+ <td>-p, --file</td>
+ <td>选择文件(多个)</td>
+ </tr>
+ <tr>
+ <td>upload,sync</td>
+ <td>-t, --time-out</td>
+ <td>分块上传超时时间(秒)</td>
+ </tr>
+ <tr>
+ <td>upload,sync</td>
+ <td>-r, --retry</td>
+ <td>上传失败重试次数</td>
+ </tr>
+ <tr>
+ <td>upload</td>
+ <td>-f, --force</td>
+ <td>强制覆盖文件</td>
+ </tr>
+ <tr>
+ <td>upload</td>
+ <td>-s, --share</td>
+ <td>指定分享的序列文件</td>
+ </tr>
+ <tr>
+ <td>upload,sync</td>
+ <td>-cs, --chunk-size</td>
+ <td>分块大小(字节)</td>
+ </tr>
+ <tr>
+ <td>upload</td>
+ <td>-c</td>
+ <td>断点续传</td>
+ </tr>
+ <tr>
+ <td>cat</td>
+ <td>-e, --encoding</td>
+ <td>文件编码</td>
+ </tr>
+ <tr>
+ <td>sync</td>
+ <td>-st, --sync-time</td>
+ <td>同步间隔时间</td>
+ </tr>
+ <tr>
+ <td>sync</td>
+ <td>--no-delete, -n</td>
+ <td>不删除(云盘/本地)文件(默认)</td>
+ </tr>
+ <tr>
+ <td>sync</td>
+ <td>-d, --delete</td>
+ <td>允许删除(云盘/本地)文件</td>
+ </tr>
+ <tr>
+ <td>sync</td>
+ <td>-l, --local</td>
+ <td>同步云盘文件到本地</td>
+ </tr>
+ <tr>
+ <td>token</td>
+ <td>--refresh, -r</td>
+ <td>刷新配置文件token</td>
+ </tr>
+ <tr>
+ <td>token</td>
+ <td>--refresh-time, -t</td>
+ <td>自动刷新token间隔时间(秒)</td>
+ </tr>
+ <tr>
+ <td>token</td>
+ <td>--change, -c</td>
+ <td>设置新的refresh_token</td>
+ </tr>
+ </tbody>
+ </table>
+</details>
+### 断点续传
+* 将文件分成多块顺序上传
+* 文件上传进度保存在当前目录下的tasks.yaml
+* 格式
+ ```yaml
+ 文件sha1:
+ path: 绝对路径
+ upload_id: 上传id
+ file_id: 文件id
+ chunk_size: 分块大小
+ part_number: 最后上传的分块编号
+ ```
+* 文件未上传成功时,CTRL+C会自动保存
+* 断点续传需带上参数-c
+### 分享
+* 由于官方修改秒传接口导致该功能失效
+* 暂时采用在秒传链接中加入直链的方法用以获取proof_code
+* 分享秒传文件时需要通过直链获取文件随机8字节,导致速度较慢
+* 由于直链的局限,秒传链接有效期为4小时
+1.分享链接格式
+```
+aliyunpan://文件名|sha1|url_base64|文件大小|相对路径
+```
+例如
+* 以下秒传链接均已失效,仅供参考
+```
+aliyunpan://示例文件.txt|F61851825609372B3D7F802E600B35A497CFC38E|url_base64|24|root
+```
+2.文件分享
+```shell
+aliyunpan-cli share 示例文件.txt
+```
+导入
+```shell
+aliyunpan-cli upload "aliyunpan://示例文件.txt|F61851825609372B3D7F802E600B35A497CFC38E|url_base64|24|root"
+```
+3.文件夹分享
+```shell
+aliyunpan-cli share 示例文件夹
+```
+导入
+```shell
+aliyunpan-cli upload -s "aliyunpan://示例文件夹|80E7E25109D4246653B600FDFEDD8D8B0D97E517|url_base64|970|root"
+```
+### TUI按键指南
+* 显示菜单(ctrl+x)
+* 退出(ctrl+c)
+* 切换标签(↑↓←→,kjhl,TAB)
+### 环境变量
+```ALIYUNPAN_CONF``` 配置文件路径
+```ALIYUNPAN_ROOT``` 根目录(log和tasks输出路径)
+## 致谢
+感谢 [zhjc1124/aliyundrive](https://github.com/zhjc1124/aliyundrive) 的登录接口参考
+
+%package help
+Summary: Development documents and examples for aliyunpan
+Provides: python3-aliyunpan-doc
+%description help
+阿里云盘cli
+环境要求: python 3.7 通过测试
+~~低版本环境运行报错参考~~[~~issue9~~](https://github.com/wxy1343/aliyunpan/issues/9)
+## 安装
+```shell
+pip install aliyunpan
+```
+## 更新
+```shell
+pip install aliyunpan --upgrade
+```
+## 运行
+```shell
+aliyunpan-cli
+```
+## pyinstaller打包
+[最新版下载](https://github.com/wxy1343/aliyunpan/releases/latest) (GitHub
+Actions打包,glibc版本较高 [#42](https://github.com/wxy1343/aliyunpan/issues/42))
+[第三方下载](https://media.cooluc.com/source/aliyunDrive-cli) (更新较慢)
+## 克隆项目
+* `--recurse-submodules` 用于克隆子模块,部分功能需要(可选)
+```shell
+git clone https://github.com/wxy1343/aliyunpan --recurse-submodules
+```
+## 获取refresh_token
+![token](https://github.com/wxy1343/aliyunpan/raw/main/token.png)
+### 注意
+* web端获取的refresh_token有防盗链检测
+1. 可以指定账号密码登入
+2. 可以通过手机端查找日志获取refresh_token
+> /sdcard/Android/data/com.alicloud.databox/files/logs/trace/userId/yunpan/latest.log
+* ~~登录api加入了ua检测,需要运行混淆的js代码来获取ua~~
+* ~~推荐安装 [node.js](https://nodejs.org) 和 [jsdom](https://github.com/jsdom/jsdom) 模块来运行js代码~~
+* 目前阿里云盘修改了ua的算法,加入了鼠标移动之类的信息,如果有解决方法的欢迎来[pr](https://github.com/wxy1343/aliyunpan/pulls)
+```shell
+npm install jsdom
+```
+### 配置refresh_token
+```shell
+echo "refresh_token: 'xxxxx'" > ~/.config/aliyunpan.yaml
+```
+### 配置账号(可选)
+```shell
+echo "username: 'xxxxx'" > ~/.config/aliyunpan.yaml
+echo "password: 'xxxxx'" >> ~/.config/aliyunpan.yaml
+```
+### 配置aria2(可选)
+```shell
+cat >> ~/.config/aliyunpan.yaml <<EOF
+aria2:
+ 'host': 'http://localhost'
+ 'port': 6800
+ 'secret': ''
+EOF
+```
+## 功能介绍
+|指令 |描述 |
+|-----------------------|------------------------------|
+|download (d) |下载文件/文件夹 |
+|ls (dir,l,list) |列目录 |
+|mv (move) |移动文件/文件夹 |
+|rm (del,delete) |删除文件/文件夹 |
+|rename (r) |重命名文件/文件夹 |
+|tree (show,t) |查看文件树 |
+|upload (u) |上传文件/文件夹 |
+|share (s) |分享文件 |
+|mkdir (m) |创建文件夹 |
+|cat (c) |显示文件内容 |
+|tui |文本用户界面 |
+|search |搜索文件/文件夹 |
+|sync |同步文件夹 |
+|token (r,refresh_token)|查看refresh_token |
+## 使用指南
+* 查看帮助
+```shell
+aliyunpan-cli -h
+```
+<details>
+ <summary>查看详情</summary>
+ <table>
+ <tbody>
+ <tr>
+ <td>参数</td>
+ <td>描述</td>
+ </tr>
+ <tr>
+ <td>-h, --help</td>
+ <td>查看帮助</td>
+ </tr>
+ <tr>
+ <td>--version</td>
+ <td>查看版本</td>
+ </tr>
+ <tr>
+ <td>-c, --config-file</td>
+ <td>指定配置文件</td>
+ </tr>
+ <tr>
+ <td>-t, --refresh-token</td>
+ <td>指定REFRESH_TOKEN</td>
+ </tr>
+ <tr>
+ <td>-u, --username</td>
+ <td>指定账号</td>
+ </tr>
+ <tr>
+ <td>-p, --password</td>
+ <td>指定密码</td>
+ </tr>
+ <tr>
+ <td>-d, --depth</td>
+ <td>文件递归深度</td>
+ </tr>
+ <tr>
+ <td>-T, --timeout</td>
+ <td>请求超时时间(秒)</td>
+ </tr>
+ <tr>
+ <td>-id, --drive-id</td>
+ <td>指定drive_id</td>
+ </tr>
+ <tr>
+ <td>-a, --album</td>
+ <td>是否访问相册</td>
+ </tr>
+ <tr>
+ <td>-s, --share-id</td>
+ <td>指定分享id</td>
+ </tr>
+ <tr>
+ <td>-sp, --share-pwd</td>
+ <td>指定分享密码</td>
+ </tr>
+ <tr>
+ <td>-f, --filter-file</td>
+ <td>过滤文件(多个)</td>
+ </tr>
+ <tr>
+ <td>-w, --whitelist</td>
+ <td>使用白名单过滤文件</td>
+ </tr>
+ <tr>
+ <td>-m, --match</td>
+ <td>指定使用正则匹配文件</td>
+ </tr>
+ </tbody>
+ </table>
+</details>
+* 查看指令参数
+```shell
+aliyunpan-cli COMMAND -h
+```
+<details>
+ <summary>查看详情</summary>
+ <table>
+ <tbody>
+ <tr>
+ <td>指令</td>
+ <td>参数</td>
+ <td>描述</td>
+ </tr>
+ <tr>
+ <td>download</td>
+ <td>-p, --file</td>
+ <td>选择文件(多个)</td>
+ </tr>
+ <tr>
+ <td>download</td>
+ <td>-s, --share</td>
+ <td>指定分享的序列文件</td>
+ </tr>
+ <tr>
+ <td>download</td>
+ <td>-cs, --chunk-size</td>
+ <td>分块大小(字节)</td>
+ </tr>
+ <tr>
+ <td>download</td>
+ <td>-a, --aria2</td>
+ <td>发送到aria2</td>
+ </tr>
+ <tr>
+ <td>ls,search</td>
+ <td>-l</td>
+ <td>查看详情</td>
+ </tr>
+ <tr>
+ <td>share</td>
+ <td>-p, --file</td>
+ <td>指定文件(多个)</td>
+ </tr>
+ <tr>
+ <td>share</td>
+ <td>-f, --file-id</td>
+ <td>指定file_id(多个)</td>
+ </tr>
+ <tr>
+ <td>share</td>
+ <td>-t, --expire-sec</td>
+ <td>分享过期时间(秒),默认最大14400</td>
+ </tr>
+ <tr>
+ <td>share</td>
+ <td>-l, --share-link</td>
+ <td>输出分享链接</td>
+ </tr>
+ <tr>
+ <td>share</td>
+ <td>-d, --download-link</td>
+ <td>输出下载链接</td>
+ </tr>
+ <tr>
+ <td>share</td>
+ <td>-s, --save</td>
+ <td>保存序列文件到云盘和本地</td>
+ </tr>
+ <tr>
+ <td>share</td>
+ <td>-S, --share-official</td>
+ <td>官方分享功能(需要账号支持)</td>
+ </tr>
+ <tr>
+ <td>upload</td>
+ <td>-p, --file</td>
+ <td>选择文件(多个)</td>
+ </tr>
+ <tr>
+ <td>upload,sync</td>
+ <td>-t, --time-out</td>
+ <td>分块上传超时时间(秒)</td>
+ </tr>
+ <tr>
+ <td>upload,sync</td>
+ <td>-r, --retry</td>
+ <td>上传失败重试次数</td>
+ </tr>
+ <tr>
+ <td>upload</td>
+ <td>-f, --force</td>
+ <td>强制覆盖文件</td>
+ </tr>
+ <tr>
+ <td>upload</td>
+ <td>-s, --share</td>
+ <td>指定分享的序列文件</td>
+ </tr>
+ <tr>
+ <td>upload,sync</td>
+ <td>-cs, --chunk-size</td>
+ <td>分块大小(字节)</td>
+ </tr>
+ <tr>
+ <td>upload</td>
+ <td>-c</td>
+ <td>断点续传</td>
+ </tr>
+ <tr>
+ <td>cat</td>
+ <td>-e, --encoding</td>
+ <td>文件编码</td>
+ </tr>
+ <tr>
+ <td>sync</td>
+ <td>-st, --sync-time</td>
+ <td>同步间隔时间</td>
+ </tr>
+ <tr>
+ <td>sync</td>
+ <td>--no-delete, -n</td>
+ <td>不删除(云盘/本地)文件(默认)</td>
+ </tr>
+ <tr>
+ <td>sync</td>
+ <td>-d, --delete</td>
+ <td>允许删除(云盘/本地)文件</td>
+ </tr>
+ <tr>
+ <td>sync</td>
+ <td>-l, --local</td>
+ <td>同步云盘文件到本地</td>
+ </tr>
+ <tr>
+ <td>token</td>
+ <td>--refresh, -r</td>
+ <td>刷新配置文件token</td>
+ </tr>
+ <tr>
+ <td>token</td>
+ <td>--refresh-time, -t</td>
+ <td>自动刷新token间隔时间(秒)</td>
+ </tr>
+ <tr>
+ <td>token</td>
+ <td>--change, -c</td>
+ <td>设置新的refresh_token</td>
+ </tr>
+ </tbody>
+ </table>
+</details>
+### 断点续传
+* 将文件分成多块顺序上传
+* 文件上传进度保存在当前目录下的tasks.yaml
+* 格式
+ ```yaml
+ 文件sha1:
+ path: 绝对路径
+ upload_id: 上传id
+ file_id: 文件id
+ chunk_size: 分块大小
+ part_number: 最后上传的分块编号
+ ```
+* 文件未上传成功时,CTRL+C会自动保存
+* 断点续传需带上参数-c
+### 分享
+* 由于官方修改秒传接口导致该功能失效
+* 暂时采用在秒传链接中加入直链的方法用以获取proof_code
+* 分享秒传文件时需要通过直链获取文件随机8字节,导致速度较慢
+* 由于直链的局限,秒传链接有效期为4小时
+1.分享链接格式
+```
+aliyunpan://文件名|sha1|url_base64|文件大小|相对路径
+```
+例如
+* 以下秒传链接均已失效,仅供参考
+```
+aliyunpan://示例文件.txt|F61851825609372B3D7F802E600B35A497CFC38E|url_base64|24|root
+```
+2.文件分享
+```shell
+aliyunpan-cli share 示例文件.txt
+```
+导入
+```shell
+aliyunpan-cli upload "aliyunpan://示例文件.txt|F61851825609372B3D7F802E600B35A497CFC38E|url_base64|24|root"
+```
+3.文件夹分享
+```shell
+aliyunpan-cli share 示例文件夹
+```
+导入
+```shell
+aliyunpan-cli upload -s "aliyunpan://示例文件夹|80E7E25109D4246653B600FDFEDD8D8B0D97E517|url_base64|970|root"
+```
+### TUI按键指南
+* 显示菜单(ctrl+x)
+* 退出(ctrl+c)
+* 切换标签(↑↓←→,kjhl,TAB)
+### 环境变量
+```ALIYUNPAN_CONF``` 配置文件路径
+```ALIYUNPAN_ROOT``` 根目录(log和tasks输出路径)
+## 致谢
+感谢 [zhjc1124/aliyundrive](https://github.com/zhjc1124/aliyundrive) 的登录接口参考
+
+%prep
+%autosetup -n aliyunpan-3.0.9
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-aliyunpan -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 3.0.9-1
+- Package Spec generated