use opendal::Operator;
use opendal::layers::{HttpClientLayer, LoggingLayer};
use opendal::services::Cos;
use crate::errors::*;
use super::http_client::set_user_agent;
pub struct COSCache;
impl COSCache {
pub fn build(bucket: &str, key_prefix: &str, endpoint: Option<&str>) -> Result<Operator> {
let mut builder = Cos::default().bucket(bucket).root(key_prefix);
if let Some(endpoint) = endpoint {
builder = builder.endpoint(endpoint);
}
let op = Operator::new(builder)?
.layer(HttpClientLayer::new(set_user_agent()))
.layer(LoggingLayer::default())
.finish();
Ok(op)
}
}