{"id":37064923,"url":"https://github.com/wxy1343/aliyunpan","last_synced_at":"2026-01-14T07:35:40.338Z","repository":{"id":41052849,"uuid":"318892342","full_name":"wxy1343/aliyunpan","owner":"wxy1343","description":"阿里云盘cli","archived":false,"fork":false,"pushed_at":"2023-02-17T15:11:28.000Z","size":609,"stargazers_count":473,"open_issues_count":20,"forks_count":63,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-09-28T09:01:42.150Z","etag":null,"topics":["aliyundrive","aliyunpan","cli","tui"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wxy1343.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-12-05T21:25:39.000Z","updated_at":"2025-08-18T23:07:46.000Z","dependencies_parsed_at":"2022-07-14T23:16:59.218Z","dependency_job_id":null,"html_url":"https://github.com/wxy1343/aliyunpan","commit_stats":null,"previous_names":[],"tags_count":122,"template":false,"template_full_name":null,"purl":"pkg:github/wxy1343/aliyunpan","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wxy1343%2Faliyunpan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wxy1343%2Faliyunpan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wxy1343%2Faliyunpan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wxy1343%2Faliyunpan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wxy1343","download_url":"https://codeload.github.com/wxy1343/aliyunpan/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wxy1343%2Faliyunpan/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28413432,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T05:26:33.345Z","status":"ssl_error","status_checked_at":"2026-01-14T05:21:57.251Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aliyundrive","aliyunpan","cli","tui"],"created_at":"2026-01-14T07:35:39.761Z","updated_at":"2026-01-14T07:35:40.330Z","avatar_url":"https://github.com/wxy1343.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# aliyunpan\n\n[![Build Status](https://github.com/wxy1343/aliyunpan/workflows/CI/badge.svg)](https://github.com/wxy1343/aliyunpan/actions)\n[![GitHub](https://img.shields.io/github/license/wxy1343/aliyunpan)](https://github.com/wxy1343/aliyunpan/blob/main/LICENSE)\n[![PyPI](https://img.shields.io/pypi/v/aliyunpan)](https://pypi.org/project/aliyunpan/)\n[![GitHub all releases](https://img.shields.io/github/downloads/wxy1343/aliyunpan/total)](https://github.com/wxy1343/aliyunpan/releases/latest/)\n[![wiki](https://img.shields.io/badge/-wiki-ff69b4)](https://github.com/wxy1343/aliyunpan/wiki)\n\n---\n\n阿里云盘cli  \n环境要求： python 3.7 通过测试  \n~~低版本环境运行报错参考~~[~~issue9~~](https://github.com/wxy1343/aliyunpan/issues/9)\n\n## 安装\n\n```shell\npip install aliyunpan\n```\n\n## 更新\n\n```shell\npip install aliyunpan --upgrade\n```\n\n## 运行\n\n```shell\naliyunpan-cli\n```\n\n## pyinstaller打包\n\n[最新版下载](https://github.com/wxy1343/aliyunpan/releases/latest) (GitHub\nActions打包，glibc版本较高 [#42](https://github.com/wxy1343/aliyunpan/issues/42))  \n[第三方下载](https://media.cooluc.com/source/aliyunDrive-cli) (更新较慢)\n\n## 克隆项目\n\n* `--recurse-submodules` 用于克隆子模块，部分功能需要(可选)\n\n```shell\ngit clone https://github.com/wxy1343/aliyunpan --recurse-submodules\n```\n\n## 获取refresh_token\n\n![token](https://github.com/wxy1343/aliyunpan/raw/main/token.png)\n\n### 注意\n\n* web端获取的refresh_token有防盗链检测\n\n1. 可以指定账号密码登入\n2. 可以通过手机端查找日志获取refresh_token\n\n\u003e /sdcard/Android/data/com.alicloud.databox/files/logs/trace/userId/yunpan/latest.log\n\n* ~~登录api加入了ua检测，需要运行混淆的js代码来获取ua~~\n* ~~推荐安装 [node.js](https://nodejs.org) 和 [jsdom](https://github.com/jsdom/jsdom) 模块来运行js代码~~\n* 目前阿里云盘修改了ua的算法,加入了鼠标移动之类的信息,如果有解决方法的欢迎来[pr](https://github.com/wxy1343/aliyunpan/pulls)\n\n```shell\nnpm install jsdom\n```\n\n### 配置refresh_token\n\n```shell\necho \"refresh_token: 'xxxxx'\"  \u003e  ~/.config/aliyunpan.yaml\n```\n\n### 配置账号(可选)\n\n```shell\necho \"username: 'xxxxx'\"  \u003e  ~/.config/aliyunpan.yaml\necho \"password: 'xxxxx'\"  \u003e\u003e  ~/.config/aliyunpan.yaml\n```\n\n### 配置aria2(可选)\n\n```shell\ncat \u003e\u003e ~/.config/aliyunpan.yaml \u003c\u003cEOF\naria2:\n  'host': 'http://localhost'\n  'port': 6800\n  'secret': ''\nEOF\n```\n\n## 功能介绍\n\n|指令                    |描述                           |\n|-----------------------|------------------------------|\n|download (d)           |下载文件/文件夹                  |\n|ls (dir,l,list)        |列目录                         |\n|mv (move)              |移动文件/文件夹                  |\n|rm (del,delete)        |删除文件/文件夹                  |\n|rename (r)             |重命名文件/文件夹                |\n|tree (show,t)          |查看文件树                      |\n|upload (u)             |上传文件/文件夹                  |\n|share (s)              |分享文件                        |\n|mkdir (m)              |创建文件夹                      |\n|cat (c)                |显示文件内容                    |\n|tui                    |文本用户界面                    |\n|search                 |搜索文件/文件夹                 |\n|sync                   |同步文件夹                     |\n|token (r,refresh_token)|查看refresh_token             |\n\n## 使用指南\n\n* 查看帮助\n\n```shell\naliyunpan-cli -h\n```\n\n\u003cdetails\u003e\n    \u003csummary\u003e查看详情\u003c/summary\u003e\n    \u003ctable\u003e\n        \u003ctbody\u003e\n            \u003ctr\u003e\n                \u003ctd\u003e参数\u003c/td\u003e\n                \u003ctd\u003e描述\u003c/td\u003e\n            \u003c/tr\u003e\n            \u003ctr\u003e\n                \u003ctd\u003e-h, --help\u003c/td\u003e\n                \u003ctd\u003e查看帮助\u003c/td\u003e\n            \u003c/tr\u003e\n            \u003ctr\u003e\n                \u003ctd\u003e--version\u003c/td\u003e\n                \u003ctd\u003e查看版本\u003c/td\u003e\n            \u003c/tr\u003e\n            \u003ctr\u003e\n                \u003ctd\u003e-c, --config-file\u003c/td\u003e\n                \u003ctd\u003e指定配置文件\u003c/td\u003e\n            \u003c/tr\u003e\n            \u003ctr\u003e\n                \u003ctd\u003e-t, --refresh-token\u003c/td\u003e\n                \u003ctd\u003e指定REFRESH_TOKEN\u003c/td\u003e\n            \u003c/tr\u003e\n            \u003ctr\u003e\n                \u003ctd\u003e-u, --username\u003c/td\u003e\n                \u003ctd\u003e指定账号\u003c/td\u003e\n            \u003c/tr\u003e\n            \u003ctr\u003e\n                \u003ctd\u003e-p, --password\u003c/td\u003e\n                \u003ctd\u003e指定密码\u003c/td\u003e\n            \u003c/tr\u003e\n            \u003ctr\u003e\n                \u003ctd\u003e-d, --depth\u003c/td\u003e\n                \u003ctd\u003e文件递归深度\u003c/td\u003e\n            \u003c/tr\u003e\n            \u003ctr\u003e\n                \u003ctd\u003e-T, --timeout\u003c/td\u003e\n                \u003ctd\u003e请求超时时间(秒)\u003c/td\u003e\n            \u003c/tr\u003e\n            \u003ctr\u003e\n                \u003ctd\u003e-id, --drive-id\u003c/td\u003e\n                \u003ctd\u003e指定drive_id\u003c/td\u003e\n            \u003c/tr\u003e\n            \u003ctr\u003e\n                \u003ctd\u003e-a, --album\u003c/td\u003e\n                \u003ctd\u003e是否访问相册\u003c/td\u003e\n            \u003c/tr\u003e\n            \u003ctr\u003e\n                \u003ctd\u003e-s, --share-id\u003c/td\u003e\n                \u003ctd\u003e指定分享id\u003c/td\u003e\n            \u003c/tr\u003e\n            \u003ctr\u003e\n                \u003ctd\u003e-sp, --share-pwd\u003c/td\u003e\n                \u003ctd\u003e指定分享密码\u003c/td\u003e\n            \u003c/tr\u003e\n            \u003ctr\u003e\n                \u003ctd\u003e-f, --filter-file\u003c/td\u003e\n                \u003ctd\u003e过滤文件(多个)\u003c/td\u003e\n            \u003c/tr\u003e\n            \u003ctr\u003e\n                \u003ctd\u003e-w, --whitelist\u003c/td\u003e\n                \u003ctd\u003e使用白名单过滤文件\u003c/td\u003e\n            \u003c/tr\u003e\n            \u003ctr\u003e\n                \u003ctd\u003e-m, --match\u003c/td\u003e\n                \u003ctd\u003e指定使用正则匹配文件\u003c/td\u003e\n            \u003c/tr\u003e\n        \u003c/tbody\u003e\n    \u003c/table\u003e\n\u003c/details\u003e\n\n* 查看指令参数\n\n```shell\naliyunpan-cli COMMAND -h\n```\n\n\u003cdetails\u003e\n    \u003csummary\u003e查看详情\u003c/summary\u003e\n    \u003ctable\u003e\n        \u003ctbody\u003e\n            \u003ctr\u003e\n                \u003ctd\u003e指令\u003c/td\u003e\n                \u003ctd\u003e参数\u003c/td\u003e\n                \u003ctd\u003e描述\u003c/td\u003e\n            \u003c/tr\u003e\n            \u003ctr\u003e\n                \u003ctd\u003edownload\u003c/td\u003e\n                \u003ctd\u003e-p, --file\u003c/td\u003e\n                \u003ctd\u003e选择文件(多个)\u003c/td\u003e\n            \u003c/tr\u003e\n            \u003ctr\u003e\n                \u003ctd\u003edownload\u003c/td\u003e\n                \u003ctd\u003e-s, --share\u003c/td\u003e\n                \u003ctd\u003e指定分享的序列文件\u003c/td\u003e\n            \u003c/tr\u003e\n            \u003ctr\u003e\n                \u003ctd\u003edownload\u003c/td\u003e\n                \u003ctd\u003e-cs, --chunk-size\u003c/td\u003e\n                \u003ctd\u003e分块大小(字节)\u003c/td\u003e\n            \u003c/tr\u003e \n            \u003ctr\u003e\n                \u003ctd\u003edownload\u003c/td\u003e\n                \u003ctd\u003e-a, --aria2\u003c/td\u003e\n                \u003ctd\u003e发送到aria2\u003c/td\u003e\n            \u003c/tr\u003e \n            \u003ctr\u003e\n                \u003ctd\u003els,search\u003c/td\u003e\n                \u003ctd\u003e-l\u003c/td\u003e\n                \u003ctd\u003e查看详情\u003c/td\u003e\n            \u003c/tr\u003e        \n            \u003ctr\u003e\n                \u003ctd\u003eshare\u003c/td\u003e\n                \u003ctd\u003e-p, --file\u003c/td\u003e\n                \u003ctd\u003e指定文件(多个)\u003c/td\u003e\n            \u003c/tr\u003e \n            \u003ctr\u003e\n                \u003ctd\u003eshare\u003c/td\u003e\n                \u003ctd\u003e-f, --file-id\u003c/td\u003e\n                \u003ctd\u003e指定file_id(多个)\u003c/td\u003e\n            \u003c/tr\u003e        \n            \u003ctr\u003e\n                \u003ctd\u003eshare\u003c/td\u003e\n                \u003ctd\u003e-t, --expire-sec\u003c/td\u003e\n                \u003ctd\u003e分享过期时间(秒)，默认最大14400\u003c/td\u003e\n            \u003c/tr\u003e\n            \u003ctr\u003e\n                \u003ctd\u003eshare\u003c/td\u003e\n                \u003ctd\u003e-l, --share-link\u003c/td\u003e\n                \u003ctd\u003e输出分享链接\u003c/td\u003e\n            \u003c/tr\u003e        \n            \u003ctr\u003e\n                \u003ctd\u003eshare\u003c/td\u003e\n                \u003ctd\u003e-d, --download-link\u003c/td\u003e\n                \u003ctd\u003e输出下载链接\u003c/td\u003e\n            \u003c/tr\u003e        \n            \u003ctr\u003e\n                \u003ctd\u003eshare\u003c/td\u003e\n                \u003ctd\u003e-s, --save\u003c/td\u003e\n                \u003ctd\u003e保存序列文件到云盘和本地\u003c/td\u003e\n            \u003c/tr\u003e        \n            \u003ctr\u003e\n                \u003ctd\u003eshare\u003c/td\u003e\n                \u003ctd\u003e-S, --share-official\u003c/td\u003e\n                \u003ctd\u003e官方分享功能(需要账号支持)\u003c/td\u003e\n            \u003c/tr\u003e         \n            \u003ctr\u003e\n                \u003ctd\u003eupload\u003c/td\u003e\n                \u003ctd\u003e-p, --file\u003c/td\u003e\n                \u003ctd\u003e选择文件(多个)\u003c/td\u003e\n            \u003c/tr\u003e        \n            \u003ctr\u003e\n                \u003ctd\u003eupload,sync\u003c/td\u003e\n                \u003ctd\u003e-t, --time-out\u003c/td\u003e\n                \u003ctd\u003e分块上传超时时间(秒)\u003c/td\u003e\n            \u003c/tr\u003e        \n            \u003ctr\u003e\n                \u003ctd\u003eupload,sync\u003c/td\u003e\n                \u003ctd\u003e-r, --retry\u003c/td\u003e\n                \u003ctd\u003e上传失败重试次数\u003c/td\u003e\n            \u003c/tr\u003e        \n            \u003ctr\u003e\n                \u003ctd\u003eupload\u003c/td\u003e\n                \u003ctd\u003e-f, --force\u003c/td\u003e\n                \u003ctd\u003e强制覆盖文件\u003c/td\u003e\n            \u003c/tr\u003e\n            \u003ctr\u003e\n                \u003ctd\u003eupload\u003c/td\u003e\n                \u003ctd\u003e-s, --share\u003c/td\u003e\n                \u003ctd\u003e指定分享的序列文件\u003c/td\u003e\n            \u003c/tr\u003e \n            \u003ctr\u003e\n                \u003ctd\u003eupload,sync\u003c/td\u003e\n                \u003ctd\u003e-cs, --chunk-size\u003c/td\u003e\n                \u003ctd\u003e分块大小(字节)\u003c/td\u003e\n            \u003c/tr\u003e \n            \u003ctr\u003e\n                \u003ctd\u003eupload\u003c/td\u003e\n                \u003ctd\u003e-c\u003c/td\u003e\n                \u003ctd\u003e断点续传\u003c/td\u003e\n            \u003c/tr\u003e        \n            \u003ctr\u003e\n                \u003ctd\u003ecat\u003c/td\u003e\n                \u003ctd\u003e-e, --encoding\u003c/td\u003e\n                \u003ctd\u003e文件编码\u003c/td\u003e\n            \u003c/tr\u003e        \n            \u003ctr\u003e\n                \u003ctd\u003esync\u003c/td\u003e\n                \u003ctd\u003e-st, --sync-time\u003c/td\u003e\n                \u003ctd\u003e同步间隔时间\u003c/td\u003e\n            \u003c/tr\u003e        \n            \u003ctr\u003e\n                \u003ctd\u003esync\u003c/td\u003e\n                \u003ctd\u003e--no-delete, -n\u003c/td\u003e\n                \u003ctd\u003e不删除(云盘/本地)文件(默认)\u003c/td\u003e\n            \u003c/tr\u003e        \n            \u003ctr\u003e\n                \u003ctd\u003esync\u003c/td\u003e\n                \u003ctd\u003e-d, --delete\u003c/td\u003e\n                \u003ctd\u003e允许删除(云盘/本地)文件\u003c/td\u003e\n            \u003c/tr\u003e         \n            \u003ctr\u003e\n                \u003ctd\u003esync\u003c/td\u003e\n                \u003ctd\u003e-l, --local\u003c/td\u003e\n                \u003ctd\u003e同步云盘文件到本地\u003c/td\u003e\n            \u003c/tr\u003e        \n            \u003ctr\u003e\n                \u003ctd\u003etoken\u003c/td\u003e\n                \u003ctd\u003e--refresh, -r\u003c/td\u003e\n                \u003ctd\u003e刷新配置文件token\u003c/td\u003e\n            \u003c/tr\u003e        \n            \u003ctr\u003e\n                \u003ctd\u003etoken\u003c/td\u003e\n                \u003ctd\u003e--refresh-time, -t\u003c/td\u003e\n                \u003ctd\u003e自动刷新token间隔时间(秒)\u003c/td\u003e\n            \u003c/tr\u003e        \n            \u003ctr\u003e\n                \u003ctd\u003etoken\u003c/td\u003e\n                \u003ctd\u003e--change, -c\u003c/td\u003e\n                \u003ctd\u003e设置新的refresh_token\u003c/td\u003e\n            \u003c/tr\u003e\n        \u003c/tbody\u003e\n    \u003c/table\u003e\n\u003c/details\u003e\n\n### 断点续传\n\n* 将文件分成多块顺序上传\n* 文件上传进度保存在当前目录下的tasks.yaml\n* 格式\n  ```yaml\n  文件sha1:\n    path: 绝对路径\n    upload_id: 上传id\n    file_id: 文件id\n    chunk_size: 分块大小\n    part_number: 最后上传的分块编号\n  ```\n* 文件未上传成功时，CTRL+C会自动保存\n* 断点续传需带上参数-c\n\n### 分享\n\n* 由于官方修改秒传接口导致该功能失效\n* 暂时采用在秒传链接中加入直链的方法用以获取proof_code\n* 分享秒传文件时需要通过直链获取文件随机8字节，导致速度较慢\n* 由于直链的局限，秒传链接有效期为4小时\n\n1.分享链接格式\n\n```\naliyunpan://文件名|sha1|url_base64|文件大小|相对路径\n```\n\n例如\n\n* 以下秒传链接均已失效，仅供参考\n\n```\naliyunpan://示例文件.txt|F61851825609372B3D7F802E600B35A497CFC38E|url_base64|24|root\n```\n\n2.文件分享\n\n```shell\naliyunpan-cli share 示例文件.txt \n```\n\n导入\n\n```shell\naliyunpan-cli upload \"aliyunpan://示例文件.txt|F61851825609372B3D7F802E600B35A497CFC38E|url_base64|24|root\"\n```\n\n3.文件夹分享\n\n```shell\naliyunpan-cli share 示例文件夹\n```\n\n导入\n\n```shell\naliyunpan-cli upload -s \"aliyunpan://示例文件夹|80E7E25109D4246653B600FDFEDD8D8B0D97E517|url_base64|970|root\"\n```\n\n### TUI按键指南\n\n* 显示菜单(ctrl+x)\n* 退出(ctrl+c)\n* 切换标签(↑↓←→,kjhl,TAB)\n\n### 环境变量\n\n```ALIYUNPAN_CONF``` 配置文件路径  \n```ALIYUNPAN_ROOT``` 根目录(log和tasks输出路径)\n\n## 致谢\n\n感谢 [zhjc1124/aliyundrive](https://github.com/zhjc1124/aliyundrive) 的登录接口参考\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwxy1343%2Faliyunpan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwxy1343%2Faliyunpan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwxy1343%2Faliyunpan/lists"}