2 个不稳定版本
0.2.0 | 2023 年 8 月 31 日 |
---|---|
0.1.0 | 2023 年 8 月 30 日 |
#1386 在 开发工具
89 每月下载量
9KB
130 代码行
storage-client-interface
StorageClientInterface 是一个定义与对象存储交互的一组方法的 trait。它提供了一种清晰且标准化的方式来执行从存储服务检索、上传和删除对象的常见操作。还提供了一个在 s3
特性下实现的 S3 实现,该特性包含在 default
特性中。
特性定义
use async_trait::async_trait;
use thiserror::Error;
#[derive(Error, Debug)]
pub enum StorageClientError {
#[error("GetObject Error: {0}")]
GetObject(String),
#[error("PutObject Error: {0}")]
PutObject(String),
#[error("DeleteObject Error: {0}")]
DeleteObject(String),
#[error("Storage Client Error - {0}")]
General(String),
}
#[async_trait]
pub trait StorageClientInterface {
async fn get_object(&self, key: String) -> Result<Option<String>, StorageClientError>;
async fn put_object(&self, key: String, body: String) -> Result<(), StorageClientError>;
async fn delete_object(&self, key: String) -> Result<(), StorageClientError>;
}
方法
get_object
根据提供的键从存储服务检索对象。
async fn get_object(&self, key: String) -> Result<Option<String>, StorageClientError>;
put_object
使用给定的键和正文将对象上传到存储服务。
async fn put_object(&self, key: String, body: String) -> Result<(), StorageClientError>;
delete_object
使用指定的键从存储服务中删除对象。
async fn delete_object(&self, key: String) -> Result<(), StorageClientError>;
依赖关系
~0.3–6.5MB
~110K SLoC