Aditya Manthramurthy 4676ae8a57
Remove lifetime parameter from client (#48)
This change lets the Client struct take ownership of the Provider trait
object so that we are remove the lifetime parameter from the Client.

This change simplifies usage of the Client object. Without this it is
difficult to pass the Client object to a thread.
2023-09-26 06:41:48 +05:30
2019-06-24 17:04:27 -07:00
2019-06-18 12:23:56 -07:00
2019-05-15 15:39:44 -07:00

MinIO Rust SDK for Amazon S3 Compatible Cloud Storage Slack Sourcegraph Apache V2 License

MinIO Rust SDK is Simple Storage Service (aka S3) client to perform bucket and object operations to any Amazon S3 compatible object storage service.

For a complete list of APIs and examples, please take a look at the MinIO Rust Client API Reference

Example:: file-uploader.rs

use minio::s3::args::{BucketExistsArgs, MakeBucketArgs, UploadObjectArgs};
use minio::s3::client::Client;
use minio::s3::creds::StaticProvider;
use minio::s3::http::BaseUrl;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
    let mut base_url = BaseUrl::from_string("play.min.io").unwrap();
    base_url.https = true;

    let static_provider = StaticProvider::new(
        "Q3AM3UQ867SPQQA43P2F",
        "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG",
        None,
    );

    let mut client = Client::new(base_url.clone(), Some(&static_provider), None, None).unwrap();

    let bucket_name = "asiatrip";

    // Check 'asiatrip' bucket exist or not.
    let exists = client
        .bucket_exists(&BucketExistsArgs::new(&bucket_name).unwrap())
        .await
        .unwrap();

    // Make 'asiatrip' bucket if not exist.
    if !exist {
        client
            .make_bucket(&MakeBucketArgs::new(&bucket_name).unwrap())
            .await
            .unwrap();
    }

    // Upload '/home/user/Photos/asiaphotos.zip' as object name
    // 'asiaphotos-2015.zip' to bucket 'asiatrip'.
    client
        .upload_object(
            &mut UploadObjectArgs::new(
                &bucket_name,
                "asiaphotos-2015.zip",
                "/home/user/Photos/asiaphotos.zip",
            )
            .unwrap(),
        )
        .await
        .unwrap();

    println!("'/home/user/Photos/asiaphotos.zip' is successfully uploaded as object 'asiaphotos-2015.zip' to bucket 'asiatrip'.");
}

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%