Crates.io | minior |
lib.rs | minior |
version | 0.1.12 |
source | src |
created_at | 2024-01-06 23:50:29.979673 |
updated_at | 2024-07-15 17:50:35.795029 |
description | Ergonomic Minio Client |
homepage | |
repository | https://gitlab.com/robertlopezdev/minior |
max_upload_size | |
id | 1091309 |
size | 3,829,213 |
Ergonomic client for Minio, built on top of the aws_sdk_s3
crate.
cargo add minior
This README provides a general overview, but does not go over all methods available. Full crate documentation can be found here at docs.rs
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.
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
: gives access to ObjectPaginationIter
to asynchronously paginate through objects for a bucket via core::pagination_iter
or Minio::pagination_object_iter
.Please report bugs by creating an issue
, or if there is a sufficient fix you are aware of, feel free to open a PR, but please follow the Contributing
guidelines below.
To report a bug, it must be directly related to this crate, and you must provide as much information as possible, such as:
Code examples
Error messages
Steps to reproduce
System information (If applicable)
If you feel there is something missing, or some variation of the current crate that would require additional dependencies other than aws-sdk-s3
, aws-config
or tokio
; please create an issue
with the request and discuss why you feel it should be part of this crate and not a third party crate.
I welcome anyone to contribute to the crate. But I do have some general requirements:
Any additional or modified methods require unit testing with 100% test coverage, that should be placed in the tests
module.
Any change that adds in additional dependencies should be created as a separate feature.
All current unit tests must pass, I.E. run cargo test
and all should pass.
Add your name and or handle to CONTRIBUTORS.md
if not already present, as well as to the Authors
section on the header comment for the file.
If adding in a new dependency, please update License::Third Party
in this README to correspond with their licensing.
If your change meets these guidelines, feel free to open a PR.
I plan to maintain this crate for the forseeable future.
MIT
See LICENSE.md
for more information
This crate is built on-top of:
The aws-config
and aws-sdk-s3
and aws-smithy-async
crates, which is licensed under Apache License 2.0, view it here.
The tokio
crate, which is licensed under MIT, view it here.
The uuid
crate (Used in internal testing), which is licensed under MIT, view it here or Apache 2.0, view it here.
The reqwest
crate (Used in internal testing), which is licensed under MIT, view it here or Apache 2.0, view it here.