aliyun drive sdk
Project description
aligo
🚀🔥 简单、易用、可扩展的阿里云盘 API 接口库 👍👍
文档写得很简单,详情请查看 代码提示 + 文档注释
有任何疑问 请 issue 或 加入 aligo交流反馈群 (群二维码在底部)
pip install -U aligo
pip install git+https://github.com/foyoux/aligo.git
快速入门
"""快速入门"""
from aligo import Aligo
if __name__ == '__main__':
ali = Aligo() # 第一次使用,会弹出二维码,供扫描登录
user = ali.get_user() # 获取用户信息
print(user.user_name, user.nick_name, user.phone) # 打印用户信息
ll = ali.get_file_list() # 获取网盘根目录文件列表
for file in ll: # 遍历文件列表
print(file.file_id, file.name, file.type) # 打印文件信息
基本功能
- 完全的代码提示
- 持久化登录、多帐户登录
- 福利码兑换
- 文件夹同步
- 在线解压缩
- 支持功能扩展
- 搜索文件/标签
- 获取重复文件列表
- 文件(夹)重命名
- 文件(夹)上传下载
- 文件(夹)移动复制
- 文件(夹)删除恢复
- 获取文档在线预览接口
- 文件(夹)分享 保存 收藏
- 文件(夹)自定义分享(无限制)
- 获取帐户、云盘(容量)等基本信息
- 相册 创建 删除 修改 添加文件 获取文件
更多接口功能,请安装最新版尝试
欢迎大家发起 新功能请求
温馨提示:
- 由于秒传链接的失效,自定分享信息的有效期只有4个小时。
- 阿里云盘不同于其他网盘或系统,其定位文件不是基于文件名(路径),而是通过
file_id
,这才是唯一定位文件的方式,aligo 中提供了简便函数get_file_by_path
/get_folder_by_path
,通过网盘路径获取文件对象,通过 其上的file_id
属性即可获取所需文件标识。但不建议频繁使用此方法,因为内部是通过get_file_list
遍历得到的。- 在保存超大分享时(分享中的文件特别多),执行保存全部的方法 -
share_file_save_all_to_drive
,它会立刻执行完毕,但是文件不会立刻被保存到网盘中,阿里云盘服务器会帮你在后台陆续将所有文件存到你的网盘中;所有当你使用share_file_save_all_to_drive
保存超大分享时,却只看到一部分文件时,不用疑惑,这是正常情况。
登录
网页扫码登录
from aligo import Aligo
# 提供 port 参数即可, 之后打开浏览器访问 http://<YOUR_IP>:<port>
ali = Aligo(port=8080)
发送登录二维码到邮箱(推荐)
最佳实践:建议将邮箱绑定到微信,这样能实时收到提醒,登录过期后也可以第一时间收到登录请求。
from aligo import Aligo, EMailConfig
if __name__ == '__main__':
email_config = EMailConfig(
email='<接收登录邮件的邮箱地址>',
# 自配邮箱
user='',
password='',
host='',
port=0,
)
ali = Aligo(email=email_config)
如何彻底删除文件?
无需先移动文件到回收站
此功能太危险,aligo 未直接提供。不过 这里 扩展了该功能,请小心使用!
如何操作资源盘
from aligo import Aligo
if __name__ == '__main__':
ali = Aligo()
drives = ali.list_my_drives()
# resource_drive_id = [drive.drive_id for drive in drives if drive.drive_name == 'resource'][0]
v2_user = ali.v2_user_get()
resource_drive_id = v2_user.resource_drive_id
ll = ali.get_file_list(drive_id=resource_drive_id)
for i in ll:
print(i)
如何自定义配置文件路径
from aligo import set_config_folder, Aligo
if __name__ == '__main__':
# 创建 Aligo 对象前,先设置配置文件目录,默认是 <用户目录>/.aligo
set_config_folder('/home/aligo')
# 会创建 /home/aligo/一号服务器.json 配置文件
ali = Aligo(name='一号服务器')
关于扩展功能
一般步骤:
1. 使用浏览器或其他抓包工具,观察通信过程;
2. 获取 url/path + 请求体;
3. 继承 `Aligo`, 使用现有的方法 `self._post` 等,进行发送请求;
会自动维护 token, 你只需关注如何发送请求即可
不慎泄露 refresh_token ?
虽然官方提供下线功能,但还是要 马上修改密码
今天无意中发现,之前使用 aligo 登录的会在登录设备列表中,但今天发现再使用 aligo 登录,已经不会出现在登录设备列表中,我也不知道为什么
今天把除我手机之外的所有设备下线后,包括 Chrome 和 aligo 登录的,但并没有失效,所有的 token 和 refresh_token 还是可以使用
所以还是得 -> 必须马上修改密码!必须马上修改密码!必须马上修改密码!
声明
此项目仅供学习交流,若有不妥之处,侵联必删。
❤️🔥欢迎加入🤝🏼 |
😃 二维码会保持更新 😜 |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
aligo-6.1.4.tar.gz
(80.6 kB
view details)
Built Distribution
aligo-6.1.4-py3-none-any.whl
(138.6 kB
view details)
File details
Details for the file aligo-6.1.4.tar.gz
.
File metadata
- Download URL: aligo-6.1.4.tar.gz
- Upload date:
- Size: 80.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b0cb37f0603cec59b0a200ba5d5cdc136b77d25f31921246e08a48b10e09cf3 |
|
MD5 | 1b147fa18f1f93600aae0425c4df10c7 |
|
BLAKE2b-256 | f8447f19f79fb27ac22df477474b88883fc794d65959133c0b590a4a3336ec09 |
Provenance
File details
Details for the file aligo-6.1.4-py3-none-any.whl
.
File metadata
- Download URL: aligo-6.1.4-py3-none-any.whl
- Upload date:
- Size: 138.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 756c894d1a3cebadc4b2523dcaf4d0c9c742a1213d09d42a89aaf82380221cd2 |
|
MD5 | 6d4918fcb01c44c4123d132413788cdb |
|
BLAKE2b-256 | 351ffdbc972df8dbb708a8fb6977e9286e49018c9d4275c553c738041b861868 |