14 个版本

0.1.14 2024 年 7 月 23 日
0.1.13 2024 年 7 月 15 日
0.1.12 2024 年 6 月 4 日
0.1.11 2024 年 5 月 7 日
0.1.4 2024 年 1 月 16 日

#163 in 异步

Download history 13/week @ 2024-04-27 87/week @ 2024-05-04 7/week @ 2024-05-11 10/week @ 2024-05-18 1/week @ 2024-05-25 145/week @ 2024-06-01 13/week @ 2024-06-08 8/week @ 2024-06-15 2/week @ 2024-06-22 1/week @ 2024-06-29 13/week @ 2024-07-06 110/week @ 2024-07-13 128/week @ 2024-07-20 35/week @ 2024-07-27

168 每月下载量

MIT 许可证

5.5MB
1.5K SLoC

minior

基于 aws_sdk_s3 crate 的 Minio 人体工学客户端。

目录

需求

安装

cargo添加 minior

文档

此 README 提供了概述,但并未涵盖所有可用方法。 完整的 crate 文档可以在 docs.rs 上找到

使用方法

概述

该 crate 提供了一个 Minio 结构体,可以用来与所有 core 模块进行接口交互,然而 core 是公开的,因此可以直接与这些方法交互。

基本示例

use minior::Minio;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Construct a client
    let minio = Minio::new("http://127.0.0.1:9000").await;

    // Create a bucket
    minio.create_bucket("sharks").await?;

    // Upload a object
    let file = tokio::fs::File::open("some file path").await?;

    minio.upload_object(
        "sharks",
        "shark",
        file,
        None,
    ).await?;

    // Get a Presigned URL for a get that expires in 1_337 seconds
    let presigned_request = minio.get_object_presigned(
        "sharks",
        "shark",
        1_337,
    ).await?;

    // Delete a object
    minio.delete_object(
        "sharks",
        "shark",
    ).await?;

    // Delete a bucket
    minio.delete_bucket(
        "sharks",
        true,
    ).await?;

    Ok(())
}

功能

  • pagination_iter:通过 core::pagination_iterMinio::pagination_object_iter 提供对 ObjectPaginationIter 的访问,以便异步分页处理 bucket 中的对象。

错误报告

请通过创建一个 issue 来报告错误,或者如果您知道足够的修复方案,请随意打开一个 PR,但请遵循下面的 Contributing 指南。

为了报告错误,它必须与此 crate 直接相关,并且您必须尽可能提供信息,例如

  • 代码示例

  • 错误消息

  • 重现步骤

  • 系统信息(如适用)

功能请求

如果您觉得缺少了某些内容,或者当前crate的某些变体需要除aws-sdk-s3aws-configtokio之外的其他依赖项,请创建一个issue,说明您的需求,并讨论为什么您认为它应该包含在这个crate中,而不是第三方crate。

贡献

我欢迎任何人对此crate做出贡献。但我也有一些基本要求

  • 任何额外的或修改的方法都需要进行单元测试,测试覆盖率应为100%,并将测试放在tests模块中。

  • 任何增加额外依赖项的更改应作为一个单独的功能创建。

  • 所有当前的单元测试都必须通过,即运行cargo test,并且所有测试都应通过。

  • 如果尚未添加,请在CONTRIBUTORS.md中添加您的姓名或昵称,以及文件标题注释中的Authors部分。

  • 如果添加了新的依赖项,请更新此README中的License::Third Party以与其许可协议相匹配。

如果您的更改符合这些指南,请随时提交PR。

项目状态

我计划在未来维护这个crate。

许可证

MIT

有关更多信息,请参阅LICENSE.md

第三方

此crate建立在以下crate之上

依赖项

~26MB
~406K SLoC