2025-04-05
编程
00

目录

1. 安装 aligo
2. 主要功能
3. 使用示例
(1) 初始化客户端
(2) 上传文件
(3) 下载文件
(4) 列出文件
(5) 创建文件夹
(6) 删除文件夹
(7) 分享文件
4. 注意事项

aligo 是一个用于 Python 的第三方库,主要用于与阿里云网盘(阿里云盘)进行交互。它是由社区开发者维护的一个非官方 SDK,提供了方便的接口来操作阿里云盘中的文件和资源。

1. 安装 aligo

你可以通过 pip 来安装 aligo 包:

bash
pip install aligo

2. 主要功能

aligo 提供了以下主要功能:

  • 文件上传、下载。
  • 文件夹创建、删除。
  • 文件/文件夹的移动、复制。
  • 获取文件列表。
  • 搜索文件。
  • 分享文件或文件夹。
  • 获取分享链接。

3. 使用示例

(1) 初始化客户端

在使用 aligo 之前,需要先登录阿里云盘。aligo 支持通过二维码扫码登录。

python
from aligo import Aligo # 初始化 Aligo 对象 ali = Aligo()

执行上述代码后,会弹出一个二维码,你需要用阿里云盘 App 扫码登录。登录成功后,aligo 会自动保存登录状态,下次使用时无需再次扫码。

(2) 上传文件

将本地文件上传到阿里云盘:

python
file_path = '/path/to/local/file.txt' # 本地文件路径 parent_folder_id = 'root' # 目标文件夹 ID,'root' 表示根目录 uploaded_file = ali.upload_file(file_path, parent_folder_id) print(f"Uploaded file: {uploaded_file.name}")

(3) 下载文件

从阿里云盘下载文件到本地:

python
file_id = 'your-file-id' # 文件的 ID local_path = '/path/to/save/file.txt' # 本地保存路径 downloaded_file = ali.download_file(file_id, local_path) print(f"Downloaded file to: {downloaded_file}")

(4) 列出文件

列出某个文件夹下的所有文件:

python
parent_folder_id = 'root' # 文件夹 ID,'root' 表示根目录 files = ali.get_file_list(parent_folder_id) for file in files: print(f"File name: {file.name}, File ID: {file.file_id}")

(5) 创建文件夹

在阿里云盘中创建一个新的文件夹:

python
parent_folder_id = 'root' # 父文件夹 ID,'root' 表示根目录 new_folder_name = 'My New Folder' new_folder = ali.create_folder(new_folder_name, parent_folder_id) print(f"Created folder: {new_folder.name}")

(6) 删除文件夹

在阿里云盘中删除一个新的文件夹:

python
from aligo import Aligo # 初始化 Aligo 客户端 ali = Aligo() # 获取文件夹的 file_id def get_folder_id_by_name(parent_file_id, folder_name): # 列出父目录下的文件和文件夹 file_list = ali.get_file_list(parent_file_id) for file in file_list: if file.name == folder_name and file.type == 'folder': return file.file_id return None # 删除文件夹 def delete_folder(parent_file_id, folder_name): # 获取文件夹的 file_id folder_id = get_folder_id_by_name(parent_file_id, folder_name) if folder_id: # 删除文件夹 response = ali.delete_file(file_id=folder_id) if response: print(f"文件夹 '{folder_name}' 已成功删除!") else: print(f"文件夹 '{folder_name}' 删除失败!") else: print(f"未找到文件夹 '{folder_name}'!") # 示例:删除名为 "test_folder" 的文件夹 parent_file_id = 'root' # 根目录的 file_id,默认为 'root' folder_name = 'test_folder' delete_folder(parent_file_id, folder_name)

(7) 分享文件

生成文件的分享链接:

python
file_id = 'your-file-id' # 文件的 ID share_link = ali.share_file(file_id) print(f"Share link: {share_link}")

4. 注意事项

  1. 非官方 SDKaligo 是由社区开发者维护的非官方工具,因此可能存在一定的风险或兼容性问题。使用时请确保了解其工作原理,并注意账户安全。

  2. API 限制:阿里云盘的 API 可能有一定的速率限制或其他约束,频繁调用可能会导致请求失败。

  3. 登录状态:登录状态会被缓存,通常存储在用户目录下的 .aligo 文件夹中。如果需要重新登录,可以删除该缓存文件。

  4. 依赖项aligo 依赖于一些第三方库,比如 requestsqrcode,安装时会自动处理这些依赖。