Skip to main content

Crate baidu_netdisk_sdk

Crate baidu_netdisk_sdk 

Source
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