2 个不稳定版本
0.2.0 | 2023年11月24日 |
---|---|
0.1.0 | 2023年8月29日 |
#10 in #save-load
22KB
342 行
GeckoPanda
从本地磁盘、Google Drive 或 Amazon S3 保存和加载文件。
- ❌ 快速
- ❌ 智能化
- ✅ 简单
此包提供了 Storage
trait 以及实现它的几个后端,提供了一个非常简单的 API 来列出、创建、更新和删除文件。这些操作可以是异步的或同步的(阻塞)。
用法
use geckopanda::prelude::*;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let storage = LocalDiskStorage::new("./storagecache")?;
// See examples for `GoogleDriveStorage` and `AmazonS3Storage`
let file_id = storage.create_blocking("example.file")?;
println!("Created file ID: {file_id}");
let data = "example file content";
storage.update_blocking(&file_id, data.as_bytes())?;
println!("Uploaded data: {data:?}");
let download_data = String::from_utf8(storage.get_blocking(&file_id)?)?;
assert_eq!(data, &download_data);
println!("Downloaded data: {download_data:?}");
let total_size: u64 = storage
.list_blocking()?
.iter()
.map(|metadata| metadata.size)
.sum();
println!("Total size: {total_size} bytes");
storage.delete_blocking(&file_id)?;
println!("Deleted file ID: {file_id}");
Ok(())
}
依赖项
~3–17MB
~227K SLoC