Skip to main content

aliyun drive sdk

Project description

aligo

🚀🔥 简单、易用、可扩展的 阿里云盘 API 接口库 👍👍

wiki 文档 + examples

文档写得很简单,详情请查看 代码提示 + 文档注释

有任何疑问 请 issue 或 加入 aligo交流反馈群 (群二维码在底部)

附带一份文档 阿里云盘开放平台文档

安装

python version Downloads

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)  # 打印用户信息

    file_list = ali.get_file_list()  # 获取网盘根目录文件列表
    for file in file_list:  # 遍历文件列表
        # 注意:print(file) 默认只显示部分信息,但是实际上file有很多的属性
        print(file.file_id, file.name, file.type)  # 打印文件信息

https://user-images.githubusercontent.com/35125624/150529002-c2f1b80b-fb11-4e0a-9fd7-6f57f678ccf5.mp4

基本功能

  • 完全的代码提示
  • 持久化登录、多帐户登录
  • 福利码兑换
  • 文件夹同步
  • 在线解压缩
  • 支持功能扩展
  • 搜索文件/标签
  • 获取重复文件列表
  • 文件(夹)重命名
  • 文件(夹)上传下载
  • 文件(夹)移动复制
  • 文件(夹)删除恢复
  • 获取文档在线预览接口
  • 文件(夹)分享 保存 收藏
  • 文件(夹)自定义分享(无限制)
  • 获取帐户、云盘(容量)等基本信息
  • 相册 创建 删除 修改 添加文件 获取文件

Notes:

  1. 由于秒传链接的失效,自定分享信息的有效期只有4个小时。
  2. 阿里云盘不同于其他网盘或系统,其定位文件不是基于文件名(路径),而是通过 file_id,这才是唯一定位文件的方式,aligo 中提供了简便函数 get_file_by_path/get_folder_by_path,通过网盘路径获取文件对象,通过 其上的 file_id 属性即可获取所需文件标识。但不建议频繁使用此方法,因为内部是通过 get_file_list 遍历得到的。
  3. 在保存超大分享时(分享中的文件特别多),执行保存全部的方法 - share_file_save_all_to_drive,它会立刻执行完毕,但是文件不会立刻被保存到网盘中,阿里云盘服务器会帮你在后台陆续将所有文件存到你的网盘中;所有当你使用 share_file_save_all_to_drive 保存超大分享时,却只看到一部分文件时,不用疑惑,这是正常情况。

登录

  1. 网页扫码登录

    from aligo import Aligo
    
    # 提供 port 参数即可, 之后打开浏览器访问 http://<YOUR_IP>:<port>
    ali = Aligo(port=8080)
    
  2. 发送登录二维码到邮箱(推荐)

    最佳实践:建议将邮箱绑定到微信,这样能实时收到提醒,登录过期后也可以第一时间收到登录请求。

    from aligo import Aligo, EMailConfig
    
    if __name__ == '__main__':
        email_config = EMailConfig(
            email='<接收登录邮件的邮箱地址>',
            # 自配邮箱
            user='',
            password='',
            host='',
            port=0,
        )
        ali = Aligo(email=email_config)
    

如何操作资源盘

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
    
    # 如果后续默认操作资源盘
    # ali.default_drive_id = resource_drive_id
    
    file_list = ali.get_file_list(drive_id=resource_drive_id)
    for file in file_list:
        print(file)

如何自定义配置文件路径

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, 你只需关注如何发送请求即可

扩展功能举栗🌰 - 配有视频和代码

如何彻底删除文件?

无需先移动文件到回收站

此功能太危险,aligo 未直接提供。不过 这里 扩展了该功能,请小心使用!

声明

此项目仅供学习交流,若有不妥之处,侵联必删。


❤️‍🔥欢迎加入🤝🏼

aligo反馈交流群
😃 添加时,请附上留言消息 “aligo” 😜

本来是群二维码,但是加进来发广告的太多了,所以改成了个人二维码。

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.14.tar.gz (80.8 kB view hashes)

Uploaded source

Built Distribution

aligo-6.1.14-py3-none-any.whl (138.8 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page