Skip to content

ZitaneLabs/rust-s3-async

 
 

Repository files navigation

ZitaneLabs/rust-s3-async

License: MIT

Fork notice

This is a fork of aalekhpatel07/rust-s3-async, which is a fork of durch/rust-s3.

It's used in our internal and upcoming projects, and is not intended to be used by anyone else.

Introduction

Rust library for working with Amazon S3 or arbitrary S3 compatible APIs, fully compatible with async/await. Uses tokio under the hood.

Quick Start

Read and run examples from the examples folder, make sure you have valid credentials for the variant you're running.

# tokio, default
cargo run --example tokio

# minio
# First, start Minio on port 9000.
AWS_ACCESS_KEY_ID="minioadmin" \
AWS_SECRET_ACCESS_KEY="minioadmin" \
    cargo run --example minio

# r2
cargo run --example r2

# google cloud
cargo run --example google-cloud

Features

There are a lot of various features that enable a wide variety of use cases, refer to s3/Cargo.toml for an exhaustive list.

  • default - tokio runtime and a native-tls implementation
  • no-verify-ssl - disable SSL verification for endpoints, useful for custom regions

Path or subdomain style URLs and headers

Bucket struct provides constructors for path-style paths, subdomain style is the default. Bucket exposes methods for configuring and accessing path-style configuration.

API

Buckets

  • create
  • delete
  • list
  • exists
  • location

Objects

  • head_object
  • get_object
  • get_object_stream
  • get_object_to_writer
  • put_object
  • put_object_with_content_type
  • put_object_stream
  • put_object_tagging
  • delete_object
  • object_exists

Presign

  • presign_post
  • presign_put
  • presign_get
  • presign_delete

About

Rust library for interfacing with S3 API compatible services

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 100.0%