Skip to main content

Crate sz_orm_storage

Crate sz_orm_storage 

Source
Expand description

§SZ-ORM Storage — 对象存储

提供统一的对象存储抽象,支持 S3、阿里云 OSS、七牛 Kodo、华为 OBS、 腾讯 COS、又拍云以及本地文件系统,可通过 StorageBuilder 配置多 provider。

§生产可用性说明

本 crate 中各 provider 的生产可用性分级如下:

Provider模块状态
Local(本地文件系统)local✅ 生产可用
S3(AWS S3 兼容)s3_sdk 模块(feature = “s3-sdk”)✅ 生产可用(基于 rust-s3 crate)
Aliyun OSSreal(feature = “real-cloud”)✅ 生产可用(基于 OpenDAL)
Tencent COSreal(feature = “real-cloud”)✅ 生产可用(基于 OpenDAL)
Huawei OBSreal(feature = “real-cloud”)✅ 生产可用(基于 OpenDAL)
UpYunreal(feature = “real-cloud”)✅ 生产可用(基于 OpenDAL)
Qiniu Kodoreal(feature = “real-cloud”)✅ 生产可用(官方 REST API + HMAC-SHA1)
以上云(未启用 feature)aliyun tencent qiniu huawei upyun s3⚠️ MOCK-ONLY(内存 HashMap)

§使用真实云存储

[dependencies]
sz-orm-storage = { version = "1.2", features = ["real-cloud"] }
use sz_orm_storage::{Storage, StorageBuilder, StorageProvider};

let storage = StorageBuilder::new(StorageProvider::AliyunOss(Default::default()))
    .with_bucket("my-bucket")
    .with_endpoint("oss-cn-hangzhou.aliyuncs.com")
    .with_access_key("AK...")
    .with_secret_key("SK...")
    .build()?;
let url = storage.put("a.txt", b"data", "text/plain").await?;

启用 real-cloud 后,StorageBuilder::build() 自动构造真实云客户端; 未配置凭据时返回 StorageError::InvalidConfig,不会静默降级为 Mock。

§主要模块

Re-exports§

pub use advanced::estimate_remaining_seconds;
pub use advanced::format_size;
pub use advanced::object_age_days;
pub use advanced::BucketLifecycle;
pub use advanced::CdnRefresher;
pub use advanced::LifecycleAction;
pub use advanced::LifecycleEvaluationResult;
pub use advanced::LifecycleRule;
pub use advanced::MultipartUpload;
pub use advanced::MultipartUploadSnapshot;
pub use advanced::Part;
pub use advanced::RefreshRequest;
pub use advanced::RefreshStatus;
pub use advanced::RefreshType;
pub use advanced::ResumableUploadManager;
pub use advanced::UploadStatus;
pub use error::StorageError;
pub use storage::StorageBuilder;
pub use storage::StorageConfig;
pub use storage::StorageProvider;
pub use storage::StorageWrapper;
pub use aliyun::AliyunOssStorage;
pub use huawei::HuaweiObsStorage;
pub use local::LocalStorage;
pub use qiniu::QiniuKodoStorage;
pub use s3::S3Storage;
pub use tencent::TencentCosStorage;
pub use upyun::UpYunStorage;
pub use storage::*;

Modules§

advanced
高级存储功能
aliyun
Aliyun OSS Storage(MOCK-ONLY,非生产可用
error
huawei
Huawei OBS Storage(MOCK-ONLY,非生产可用
local
qiniu
Qiniu Kodo Storage(MOCK-ONLY,非生产可用
s3
S3 Storage(MOCK-ONLY,非生产可用
storage
tencent
Tencent COS Storage(MOCK-ONLY,非生产可用
upyun
UpYun Storage(MOCK-ONLY,非生产可用