All Projects → durch → Rust S3

durch / Rust S3

Licence: mit
Rust library for interfacing with AWS S3 and other API compatible services

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Rust S3

fss3
FSS3 is an S3 filesystem abstraction layer for Golang
Stars: ✭ 52 (-70.62%)
Mutual labels:  aws-s3, s3, minio
Rome
Carthage cache for S3, Minio, Ceph, Google Storage, Artifactory and many others
Stars: ✭ 724 (+309.04%)
Mutual labels:  s3, aws-s3, minio
Radosgw Admin4j
A Ceph Object Storage Admin SDK / Client Library for Java ✨🍰✨
Stars: ✭ 50 (-71.75%)
Mutual labels:  s3, aws-s3
Javelin
[Mirror] RTMP streaming server written in Rust
Stars: ✭ 77 (-56.5%)
Mutual labels:  async, tokio
Nestjs Multer Extended
💪 Extended MulterModule for NestJS with flexible S3 upload and helpful features
Stars: ✭ 99 (-44.07%)
Mutual labels:  s3, aws-s3
S3proxy
Access other storage backends via the S3 API
Stars: ✭ 952 (+437.85%)
Mutual labels:  s3, aws-s3
Aws S3 Scala
Scala client for Amazon S3
Stars: ✭ 35 (-80.23%)
Mutual labels:  s3, aws-s3
Dataengineeringproject
Example end to end data engineering project.
Stars: ✭ 82 (-53.67%)
Mutual labels:  s3, minio
Stock Analysis Engine
Backtest 1000s of minute-by-minute trading algorithms for training AI with automated pricing data from: IEX, Tradier and FinViz. Datasets and trading performance automatically published to S3 for building AI training datasets for teaching DNNs how to trade. Runs on Kubernetes and docker-compose. >150 million trading history rows generated from +5000 algorithms. Heads up: Yahoo's Finance API was disabled on 2019-01-03 https://developer.yahoo.com/yql/
Stars: ✭ 605 (+241.81%)
Mutual labels:  s3, minio
Mc
MinIO Client is a replacement for ls, cp, mkdir, diff and rsync commands for filesystems and object storage.
Stars: ✭ 1,962 (+1008.47%)
Mutual labels:  s3, aws-s3
Terraform Aws S3 Bucket
Terraform module which creates S3 bucket resources on AWS
Stars: ✭ 130 (-26.55%)
Mutual labels:  s3, aws-s3
0x4447 product s3 email
📫 A serverless email server on AWS using S3 and SES
Stars: ✭ 2,905 (+1541.24%)
Mutual labels:  s3, aws-s3
Awslib scala
An idiomatic Scala wrapper around the AWS Java SDK
Stars: ✭ 20 (-88.7%)
Mutual labels:  s3, aws-s3
S3 Permission Checker
Check read, write permissions on S3 buckets in your account
Stars: ✭ 18 (-89.83%)
Mutual labels:  s3, aws-s3
Minio Hs
MinIO Client SDK for Haskell
Stars: ✭ 39 (-77.97%)
Mutual labels:  s3, aws-s3
Minio Go
MinIO Client SDK for Go
Stars: ✭ 1,231 (+595.48%)
Mutual labels:  s3, minio
Are We Consistent Yet
Compare eventual consistency of object stores
Stars: ✭ 157 (-11.3%)
Mutual labels:  s3, aws-s3
S3fs Fuse
FUSE-based file system backed by Amazon S3
Stars: ✭ 5,733 (+3138.98%)
Mutual labels:  s3, aws-s3
Heim
Cross-platform async library for system information fetching 🦀
Stars: ✭ 572 (+223.16%)
Mutual labels:  async, tokio
Sbt S3 Resolver
☁️Amazon S3-based resolver for sbt
Stars: ✭ 112 (-36.72%)
Mutual labels:  s3, aws-s3

build MIT licensed

rust-s3 [docs]

Rust library for working with Amazon S3 or arbitrary S3 compatible APIs, fully compatible with async/await and futures ^0.3

Support further development

  • BTC - 3QQdtQGSMStTWEBhe65hPiAWJekXH8n26o
  • ETH - 0x369Fd06ACc25CCfE0A28BE40018cF3aC38AcdcB6

Intro

Modest interface towards Amazon S3, as well as S3 compatible object storage APIs such as Wasabi, Yandex, Minio or Google Cloud Storage. Supports: put, get, list, delete, operations on tags and location, well as head.

Additionally a dedicated presign_get Bucket method is available. This means you can upload to s3, and give the link to select people without having to worry about publicly accessible files on S3. This also means that you can give people a PUT presigned URL, meaning they can upload to a specific key in S3 for the duration of the presigned URL.

AWS, Yandex and Custom (Minio) Example

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.

Buckets

create async
delete async

Presign

PUT presign_put
GET presign_get

GET

There are a few different options for getting an object. sync and async methods are generic over std::io::Write, while tokio methods are generic over tokio::io::AsyncWriteExt.

async get_object
async get_object_stream

PUT

Each GET method has a PUT companion sync and async methods are generic over std::io::Read. async stream methods are generic over futures::io::AsyncReadExt, while tokio methods are generic over tokio::io::AsyncReadExt.

async put_object
async put_object_with_content_type
async put_object_stream

List

async list

DELETE

async delete_object

Location

async location

Tagging

async put_object_tagging
async get_object_tagging

Head

async head_object

Usage (in Cargo.toml)

[dependencies]
rust-s3 = "0.27"

Features

Disable SSL verification for endpoints, useful for custom regions
[dependencies]
rust-s3 = {version = "0.26.0", features = ["no-verify-ssl"]}
Fail on HTTP error responses
[dependencies]
rust-s3 = {version = "0.26.0", features = ["fail-on-err"]}
Different SSL backends

Default is reqwest/native-tls, it is possible to switch to reqwest/rustls-tls which is more portable

[dependencies]
rust-s3 = {version = "0.26.0", features = ["rustls-tls"]}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].