open_lark/service/cloud_docs/drive/mod.rs
1//! 云盘Drive服务
2//!
3//! 提供飞书云盘相关的所有API功能,包括文件上传下载、文件夹管理、权限控制等。
4//! 支持多种文件操作和高级功能如文件版本管理、文件分享等。
5//!
6//! # API版本
7//!
8//! - **v1**: 核心文件操作功能
9//! - **v2**: 增强功能和文件浏览器
10//!
11//! # 主要功能
12//!
13//! - 📁 文件和文件夹管理
14//! - ⬆️ 文件上传和下载
15//! - 🔐 权限控制和文件分享
16//! - 📂 文件浏览器和导航
17//! - 🏷️ 文件元数据和版本管理
18//! - 👍 文件点赞和收藏
19//!
20//! # 快速开始
21//!
22//! ```rust
23//! use open_lark::prelude::*;
24//!
25//! let client = LarkClient::builder("app_id", "app_secret")
26//! .with_app_type(AppType::SelfBuild)
27//! .build();
28//!
29//! // 上传文件
30//! // let upload_request = UploadAllRequest::builder()
31//! // .file_name("document.pdf")
32//! // .parent_type("folder")
33//! // .parent_node("folder_token")
34//! // .build();
35//! // let result = client.drive.v1.files.upload_all(upload_request, None).await?;
36//!
37//! // 获取文件信息
38//! // let file_info = client.drive.v1.file.get(file_token, None).await?;
39//! ```
40
41use std::sync::Arc;
42
43use crate::{
44 core::config::Config,
45 service::drive::{v1::V1, v2::V2},
46};
47
48/// Drive API v1版本
49pub mod v1;
50/// Drive API v2版本
51pub mod v2;
52
53/// 云盘Drive服务
54///
55/// 聚合所有Drive相关的API版本,提供统一的文件操作接口。
56/// 通过不同版本的子服务访问具体的API功能。
57pub struct DriveService {
58 /// Drive API v1版本服务
59 pub v1: V1,
60 /// Drive API v2版本服务
61 pub v2: V2,
62}
63
64impl DriveService {
65 /// 创建新的Drive服务实例
66 ///
67 /// # 参数
68 /// - `config`: 客户端配置
69 pub fn new(config: Arc<Config>) -> Self {
70 Self {
71 v1: V1::new((*config).clone()),
72 v2: V2::new((*config).clone()),
73 }
74 }
75}