1 个稳定版本
1.0.2 | 2023年8月8日 |
---|
#411 在 压缩
每月下载量 44
28KB
158 代码行
DEMSF-RS - 使用 Rust 编写的下载和提取 Microsoft Sharepoint 文件的工具
我创建了这个 Rust
工具程序,专为 SRE、DevOps 和开发者设计,用于从 Microsoft Sharepoint 仓库下载文件。
该项目是从其原始源码 https://github.com/phlbrz/demsf 进行重写的,原始代码使用了 bash
工具脚本。过渡到 Rust 的过程是在 ChatGPT 的帮助下开始的。
这些脚本主要用于 CI 管道或本地设置(开发环境)的自动化。
由于我分享的 Sharepoint 链接是公开的,不需要认证,因此该工具提供无缝访问。
当前实现使用了一些 crates 进行下载和解压,但如果您希望使用其他解压器,请通过提出问题告诉我。
仓库结构
tree -I target demsf-rs/
demsf-rs/
├── Cargo.toml # crate/libs from crates.io
├── LICENSE
├── README.md
└── src
├── args.rs # a struct and impl mod to encapsulate args from input.
├── download.rs # Download a Microsoft Sharepoint File.
├── lib.rs # Declared mods.
├── main.rs # Execute the program.
└── unzip.rs # Unzip a file downloaded from Microsoft Sharepoint.
要求
- Linux
- Rust
使用方法
- 创建您的 workspace
mkdir $HOME/workspace-rust/
cd $HOME/workspace-rust/
- 克隆此仓库
git clone https://github.com/phlbrz/demsf-rs.git
cd demsf-rs
OUTPUT_FOLDER="/home/user/workspace/demsf_output/"
OUPUT_FILENAME="file-name.zip"
URL="https://some-shared-repo.sharepoint.com/:u:/s/SharedRepo/XXXxXXxXxXxXxxXxXxxxxxxXXx1xxxx2X3X4XxxxXXxXXX?e=XXxxX1"
# If you want to extract a zip
cargo run -- "$OUTPUT_FOLDER" "$OUTPUT_FILENAME" "$URL" true
# If you don't need to extract a zip
cargo run -- "$OUTPUT_FOLDER" "$OUTPUT_FILENAME" "$URL" false
如何使用 crate
- 要从 Microsoft Sharepoint 下载文件,必须将 unzip 设置为
false
。 - 要从文件系统解压文件,必须将 unzip 设置为
true
,或者不调用下载函数。
use log::{debug, error};
use demsf_rs::args::Args;
use demsf_rs::download::download;
use demsf_rs::unzip::unzip;
fn main() {
env_logger::init();
match Args::parse_arguments() {
Err(why) => {
error!("Error");
panic!("{:?}", why)
}
Ok(mut value) => {
debug!("call download."); // if you don't want to download, comment this line.
download(&mut value); // if you don't want to download, comment this line.
debug!("call unzip? value={:#?}", &value.unzip); // if you want to unzip, set true
match &value.unzip.parse() {
Ok(true) => unzip(&value),
Ok(false) => (),
Err(_) => panic!("Only true or false is valid for unzip option."),
}
}
}
}
- Rust 文件
download.rs
:下载 Microsoft Sharepoint 文件
该脚本便于从 Microsoft Sharepoint 获取文件。
它利用了预填充了 OUTPUT_FOLDER
、OUTPUT_FILENAME
和 URL
的 args.rs
模块。
- Rust 文件
unzip.rs
:从 Microsoft Sharepoint 下载的文件解压
这将解压文件。
它利用了预填充了 OUTPUT_FOLDER
、OUTPUT_FILENAME
、URL
的 args.rs
模块,您必须在命令行中调用程序时将 true
设置为 true
。
来源
依赖
~10–23MB
~353K SLoC