Expand description
Baidu NetDisk Rust SDK
A Rust SDK for Baidu NetDisk API, providing file management, upload/download and other functionalities.
§Features
- API coverage: file management, upload/download, media processing, etc.
- Elegant error handling: layered error types for easy caller handling
- High performance: supports parallel upload and resumable upload
- Thread safety: uses RwLock for concurrent safety
- Configurable: flexible client configuration via Builder pattern
§Quick Start
use baidu_netdisk_sdk::BaiduNetDiskClient;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = BaiduNetDiskClient::builder()
.app_key("your_app_key")
.app_secret("your_app_secret")
.build()?;
// Device code authorization
let device_code = client.authorize().get_device_code().await?;
println!("Please visit: {}", device_code.verification_url);
// Poll for access token
let token = loop {
match client.authorize().request_access_token(&device_code).await? {
Some(t) => break t,
None => tokio::time::sleep(std::time::Duration::from_secs(device_code.interval as u64)).await,
}
};
println!("Token acquired: {}", token.access_token);
Ok(())
}Re-exports§
pub use crate::auth::AccessToken;pub use crate::auth::DeviceCode;pub use crate::auth::QuotaInfo;pub use crate::auth::TokenStatus;pub use crate::auth::UserInfo;pub use crate::client::BaiduNetDiskClient;pub use crate::client::TokenScopedClient;pub use crate::download::DownloadClient;pub use crate::errors::NetDiskError;pub use crate::errors::NetDiskResult;pub use crate::file::BtListOptions;pub use crate::file::Category;pub use crate::file::CategoryCountOptions;pub use crate::file::CategorySearchOptions;pub use crate::file::DocumentListOptions;pub use crate::file::FileClient;pub use crate::file::FileInfo;pub use crate::file::FileMeta;pub use crate::file::FolderCreateOptions;pub use crate::file::FolderInfo;pub use crate::file::ImageListOptions;pub use crate::file::ListAllOptions;pub use crate::file::ListOptions;pub use crate::file::SearchOptions;pub use crate::file::SemanticSearchOptions;pub use crate::file::VideoListOptions;pub use crate::playlist::MediaFile;pub use crate::playlist::MediaFileEntry;pub use crate::playlist::MediaInfo;pub use crate::playlist::MediaPlayInfo;pub use crate::playlist::MediaStream;pub use crate::playlist::PlaylistClient;pub use crate::playlist::PlaylistFileInfo;pub use crate::playlist::PlaylistFileList;pub use crate::playlist::PlaylistInfo;pub use crate::playlist::PlaylistList;pub use crate::quota::CapacityInfo;pub use crate::upload::CreateFileOptions;pub use crate::upload::CreateFileResponse;pub use crate::upload::LocateUploadResponse;pub use crate::upload::LocateUploadServer;pub use crate::upload::PrecreateOptions;pub use crate::upload::PrecreateResponse;pub use crate::upload::SimpleUploadOptions;pub use crate::upload::UploadChunkOptions;pub use crate::upload::UploadChunkResponse;pub use crate::upload::UploadClient;
Modules§
- auth
- Authentication and token management module
- client
- download
- File downloading functionality for Baidu NetDisk
- errors
- file
- File management and query functionality
- http
- HTTP client module
- playlist
- Playlist and media playback functionality
- quota
- Quota and storage capacity module
- upload
- File upload functionality for Baidu NetDisk
- user
- User information module