Henk-Jan Lebbink 5a90956db8
fix: update HTTP header constants to use proper capitalization (#186)
- Update all X-Amz-* headers to use capital letters after hyphens (e.g., X-Amz-Date)
  - Update standard HTTP headers to use proper case (e.g., If-Modified-Since)
  - Update X-Minio headers to follow same capitalization pattern
  - Aligns with AWS S3 API specification and HTTP standards
2025-09-29 14:40:00 +02:00
2025-08-14 21:31:45 -07:00
2019-06-18 12:23:56 -07:00
2019-05-15 15:39:44 -07:00
2025-05-30 13:12:50 -06:00

MinIO Rust SDK for Amazon S3 Compatible Cloud Storage

CI docs.rs Slack Sourcegraph crates.io Apache V2 License

The MinIO Rust SDK is a Simple Storage Service (aka S3) client for performing bucket and object operations to any Amazon S3 compatible object storage service. It provides a strongly-typed, async-first interface to the MinIO and Amazon S3-compatible object storage APIs.

Each supported S3 operation has a corresponding request builder (for example: [BucketExists], [PutObject], [UploadPartCopy]), which allows users to configure request parameters using a fluent builder pattern.

All request builders implement the [S3Api] trait, which provides the async send method to execute the request and return a typed response.

Basic Usage

use minio::s3::Client;
use minio::s3::types::S3Api;
use minio::s3::response::BucketExistsResponse;

#[tokio::main]
async fn main() {
    let client: Client = Default::default(); // configure your client

    let exists: BucketExistsResponse = client
        .bucket_exists("my-bucket")
        .send()
        .await
        .expect("request failed");

    println!("Bucket exists: {}", exists.exists);
}

Features

  • Request builder pattern for ergonomic API usage
  • Full async/await support via [tokio]
  • Strongly-typed responses
  • Transparent error handling via Result<T, Error>

Design

  • Each API method on the [Client] returns a builder struct
  • Builders implement [ToS3Request] for request conversion and [S3Api] for execution
  • Responses implement [FromS3Response] for consistent deserialization

Examples

You can run the examples from the command line with:

cargo run --example <example_name>

The examples below cover several common operations. You can find the complete list of examples in the examples directory.

file_uploader.rs

file_downloader.rs

object_prompt.rs

License

This SDK is distributed under the Apache License, Version 2.0, see LICENSE for more information.

Description
MinIO Rust SDK for Amazon S3 Compatible Cloud Storage
Readme Apache-2.0 7.6 MiB
Languages
Rust 99.9%