# minior Ergonomic client for Minio, built on top of the `aws_sdk_s3` crate. ## Table of Contents - [Requirements](#requirements) - [Installation](#installation) - [Documentation](#documentation) - [Usage](#usage) - [Overview](#overview) - [Basic example](#basic-example) - [Features](#features) - [Bug Reports](#bug-reports) - [Feature Requests](#feature-requests) - [Contributing](#contributing) - [Project Status](#project-status) - [License](#license) ## Requirements - Minio deployment: - [Official installation guide](https://min.io/download?utm_term=&utm_campaign=Leads-Performance+Max-1-042023&utm_source=adwords&utm_medium=ppc&hsa_acc=8976569894&hsa_cam=20015732098&hsa_grp=&hsa_ad=&hsa_src=x&hsa_tgt=&hsa_kw=&hsa_mt=&hsa_net=adwords&hsa_ver=3&gad_source=1&gclid=Cj0KCQiAkeSsBhDUARIsAK3tiecF1RUejrAWP89hF1q-FM8_LYfmgKqKImAknRLFuXZqQ9OuD8KGv_YaAr5ZEALw_wcB#/kubernetes) - Rust (version 1.6+): - [Official installation guide](https://www.rust-lang.org/tools/install) ## Installation `cargo add minior` ## Documentation This README provides a general overview, but does not go over all methods available. [Full crate documentation can be found here at docs.rs](https://docs.rs/minior/latest/minior/) ## Usage ### Overview The crate exposes a struct `Minio` that can be used to interface with all `core` modules, however `core` is public so feel free to interact with those methods directly. ### Basic Example ``` use minior::Minio; #[tokio::main] async fn main() -> Result<(), Box> { // 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(()) } ``` ## Features - `pagination_iter`: gives access to `ObjectPaginationIter` to asynchronously paginate through objects for a bucket via `core::pagination_iter` or `Minio::pagination_object_iter`. ## Bug Reports Please report bugs by creating an `issue`, or if there is a sufficient fix you are aware of, feel free to open a PR. Please provide any of the following if applicable: - Code examples - Error messages - Steps to reproduce - System information (If applicable) ## Contributing I welcome anyone to contribute to the crate. All tests must pass, and the feature/change should make sense based on the current API allotted. ## Project Status I plan to maintain this crate for the forseeable future. ## License MIT See `LICENSE.md` for more information