12个版本
0.2.10 | 2022年9月12日 |
---|---|
0.2.9 | 2022年9月8日 |
0.1.0 | 2022年7月17日 |
#2637 in 魔法豆
每月 24 次下载
在 trustblock-cli 中使用
89KB
2K SLoC
w3s
一个Rust库,可轻松上传文件或目录到Web3.Storage,可选加密和压缩。
用法
将以下行添加到您的Cargo.toml文件中
w3s = { version = "0.2", features = ["all"] }
示例
上传单个文件
let cid_result = w3s::helper::upload(
path, // the file path
auth_token, // the api token created in web3.storage
2, // max concurrent upload threads
Some(Arc::new(Mutex::new(|name, part, pos, total| { // the progress listener
println!("name: {name} part:{part} {pos}/{total}");
}))),
Some(None), // if packed in CAR with custom block size, `Some(None)` means packed in CAR with default 256K block size
Some(&mut b"abcd1234".to_owned()), // if use encryption with password
Some(None), // if use compression with zstd level, `Some(None)` means uses compression with zstd level at 10
)
.await?;
上传目录
let cid_result = w3s::helper::upload_dir(
path, // the folder path
None, // file filter which can bypass specific files
auth_token, // the api token created in web3.storage
2, // max concurrent upload threads
Some(Arc::new(Mutex::new(|name, part, pos, total| { // the progress listener
println!("name: {name} part:{part} {pos}/{total}");
}))),
None, // if use encryption with password
None, // if use compression with zstd level
)
.await?;
从IPFS网关下载压缩和加密的文件
w3s::helper::download(
url, // the whole url pointing to the file under the IPFS geteway
name, // just a label that will later be passed to the progress listener
&mut file, // file to written
Some(Arc::new(Mutex::new(|name, _, pos, total| { // the progress listener
println!("name: {name} {pos}/{total}");
}))),
None, // start offset which should be `None` for compressed or encrypted file
Some(b"abcd1234".to_vec()), // use decryption with password
true, // use decompression
)
.await?;
使用说明
请查看 examples/ 文件夹以获取不同的用法示例。
待办事项
- 可组合链写入器
- 网关可用性检查器
- 通过
api.web3.storage/upload
单个文件上传 - 通过
api.web3.storage/car
单个CAR上传 - 单个文件/CAR并发上传
- 单个文件/CAR上传带压缩
- 单个文件/CAR上传带加密
- 自动分割大于100MB的单个文件上传
- 从单个文件生成CAR
- 单个文件/car下载
- 单个文件/car下载带解压缩和解密
- 通过CAR写入器上传目录
- 带压缩和加密的目录上传
- 代码注释
- 文档
链写入器
该w3s库包含几个用于上传任务的写入器。您可以根据需要添加写入器。
例如,如果您想在上传之前压缩和加密数据
Get the file -> compression writer -> encryption writer -> split writer -> upload writer
如果您想上传CAR文件
Get the file -> CAR writer -> upload writer
如果您希望在CAR之前加密文件并上传
Get the file -> encryption writer -> CAR writer -> upload writer
依赖项
~11-27MB
~411K SLoC