#webdav #server #reqwest #client #requests #delete #unzip

rustydav

一个可以用于调用webdav服务器的轻量级库

4 个版本

0.1.3 2021年10月9日
0.1.2 2020年5月1日
0.1.1 2019年12月22日
0.1.0 2019年11月1日

#1586 in Web编程

Download history 37/week @ 2024-03-11 32/week @ 2024-03-18 36/week @ 2024-03-25 56/week @ 2024-04-01 23/week @ 2024-04-08 95/week @ 2024-04-15 15/week @ 2024-04-22 43/week @ 2024-04-29 25/week @ 2024-05-06 38/week @ 2024-05-13 19/week @ 2024-05-20 34/week @ 2024-05-27 30/week @ 2024-06-03 22/week @ 2024-06-10 23/week @ 2024-06-17 49/week @ 2024-06-24

127 每月下载量
2 个crate中使用了(通过 remotefs-webdav

GPL-3.0 许可证

11KB
129

rustydav

build tests crates.io Documentation GPL-3.0 licensed

在Rust中实现webdav请求

这是一个用Rust编写的轻量级库,灵感来自 hyperdav,并使用 reqwest 库作为基础。

此库可以用于调用webdav服务器。

支持的方法有

  • get
  • put
  • delete
  • unzip
  • mkcol
  • mv
  • list

变更日志

示例

如何使用此库的简单示例

rustydav 作为依赖项包含

[dependencies]
rustydav = "0.1.3"

然后在您的代码中添加以下内容

extern crate rustydav;

use rustydav::client;
use rustydav::prelude::*;

调用方法的简短示例

// Every method will return a Result<Response, Error>

if (result.is_ok() {
    // the method completed with success
} else {
    // somenting when wrong
}

// Create the client
let webdav_client = client::Client::init(/*username*/, /*password*/);

// Get some file from server
// The result will contain the file data
let result = webdav_client.get(/*absolute url to the server file location*/);

// Upload a file to server. It can be any type of file as long as it is transformed to a vector of bytes (Vec<u8>).
// This can be achieved with std::fs::File or zip-rs for sending zip files.
let result = webdav_client.put(/*Vec<u8>*/, /*absolute path to the server file location*/);

// Delete a remote file from the server
let result = webdav_client.delete(/*absolute path to the file on the server*/);

// Unzip a zip archive on the server
let result = webdav_client.unzip(/*absolute path to the zip archive on the server*/);

// Create a new directory on server
let result = webdav_client.mkcol(/*absolute path to the server where to create the new folder*/);

// Rename or move a file / folder / zip on the server
// If the file location changes it will move the file, if only the file name changes it will rename it.
let result = webdav_client.mv(/*absolute path on the server for old file location/name*/, /*absolute on the server for new file location/name*/);

// List files and folders at the given path on the server
// Depth of "0" applies only to the resource, "1" to the resource and it's children, "infinity" to the resource and all it's children recursively
// The result will contain an xml list with the remote folder contents.
let result = webdav_client.list(/*absolute path on the server to list the files*/, /*depth being "0", "1" or "infinity"*/);

有关它们的更多信息,请参阅 client.rs 文件。

依赖项

~3–17MB
~222K SLoC