4 个版本

使用旧 Rust 2015

0.1.3 2016 年 2 月 11 日
0.1.2 2016 年 2 月 11 日
0.1.1 2016 年 2 月 11 日
0.1.0 2016 年 2 月 10 日

#10#dropbox

每月 22 次下载

MIT/Apache

43KB
1K SLoC

非官方的 Rust Dropbox SDK

"Build Status", link="https://travis-ci.org/pwoolcoc/dropbox-rs"

这是一个(非官方的,即未经 Dropbox 推荐的)Rust Dropbox SDK。目前它还不完整,尽管 API 大部分已经实现。

目前它使用 Hyper 与 Dropbox API 通信,但这是可互换的,允许用户使用他们首选的 HTTP 库,或使用更高级的功能。

它在测试和文档方面也非常缺乏。

已实现功能

目前以下 API 调用是可用的

  • /files/copy
  • /files/create_folder
  • /files/delete
  • /files/download
  • /files/list_folder
  • /files/upload

示例

[source,rust] .基本示例

extern crate dbox;

use dbox::client::Client;
use dbox::files;

const ACCESS_TOKEN: &'static str = "MY_ACCESS_TOKEN";

fn main() {
    let client = Client::new(ACCESS_TOKEN);
    let (metadata, response) = files::download(&client, "/path/to/file").unwrap();
}

[source,rust] .使用非 Hyper 客户端

// compile with `cargo build --no-default-features`
extern crate dbox;
extern crate rustc_serialize;

use dbox::{DropboxClient, Result, Response};
use dbox::files;

struct MyClient;

impl DropboxClient for MyClient {
    fn access_token() -> &str {
        // return access token
    }

    fn request<T>(&self, url: &str, headers: &mut BTreeMap<String, String>, body: &T) -> Result<Response>
        where T: rustc_serialize::Encodable + Clone
    {
        // implement http request here
    }
}

fn main() {
    let client = MyClient;
    let (metadata, response) = files::download(&client, "/path/to/file").unwrap();
}

依赖

~2.2–3.5MB
~62K SLoC