Skip to content

S3 Chelak (Chelak means bucket in Uzbek) is a local development tool that emulates the AWS S3 API's interface.

Notifications You must be signed in to change notification settings

oneslash/s3-chelak

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🪣 S3 Chelak

Rust

Description

S3 Chelak is a local development tool that emulates the AWS S3 API's interface. This allows you to test your S3 integrations without connecting to AWS, which is useful for offline development and testing. It's designed to behave as much as possible like AWS S3, with the ability to store and retrieve objects, among other functions.

Features

  • Emulates the S3 ListBuckets (so far)
  • Error handling similar to the AWS S3 API.

Installation

$ git clone https://github.com/oneslash/s3-chelak.git
$ cd s3-chelak
$ cargo build

Usage

Start the server:

$ cargo run

Parameters:

  • server_url (Default: "localhost"): Defines the URL at which the server will be running. You can modify this value according to your needs.

  • server_port (Default: "9090"): This is the port number on which the server will listen for requests. If you have another service running on the default port, you may want to change this.

  • working_folder (Default: "/tmp/s3-server"): This is the directory where the server will store all the data. If you wish to have the data stored in a different location, you can modify this value.

$ ./s3-chelak --server-url "my_custom_url" --server-port "8080" --working-folder "/path/to/my/folder"

API's implemented

AWS S3 API Name Implemented
AbortMultipartUpload
CompleteMultipartUpload
CopyObject
CreateBucket
CreateMultipartUpload
DeleteBucket
DeleteBucketAnalyticsConfiguration
DeleteBucketCors
DeleteBucketEncryption
DeleteBucketIntelligentTieringConfiguration
DeleteBucketInventoryConfiguration
DeleteBucketLifecycle
DeleteBucketMetricsConfiguration
DeleteBucketOwnershipControls
DeleteBucketPolicy
DeleteBucketReplication
DeleteBucketTagging
DeleteBucketWebsite
DeleteObject
DeleteObjectTagging
DeleteObjects
DeletePublicAccessBlock
GetBucketAccelerateConfiguration
GetBucketAcl
GetBucketAnalyticsConfiguration
GetBucketCors
GetBucketEncryption
GetBucketIntelligentTieringConfiguration
GetBucketInventoryConfiguration
GetBucketLifecycle
GetBucketLifecycleConfiguration
GetBucketLocation
GetBucketLogging
GetBucketMetricsConfiguration
GetBucketNotification
GetBucketNotificationConfiguration
GetBucketOwnershipControls
GetBucketPolicy
GetBucketPolicyStatus
GetBucketReplication
GetBucketRequestPayment
GetBucketTagging
GetBucketVersioning
GetBucketWebsite
GetObject
GetObjectAcl
GetObjectLegalHold
GetObjectLockConfiguration
GetObjectRetention
GetObjectTagging
GetObjectTorrent
GetPublicAccessBlock
HeadBucket
HeadObject
ListBucketAnalyticsConfigurations
ListBucketIntelligentTieringConfigurations
ListBucketInventoryConfigurations
ListBucketMetricsConfigurations
ListBuckets
ListMultipartUploads
ListObjectVersions
ListObjects
ListObjectsV2
ListParts
PutBucketAccelerateConfiguration
PutBucketAcl
PutBucketAnalyticsConfiguration
PutBucketCors
PutBucketEncryption
PutBucketIntelligentTieringConfiguration
PutBucketInventoryConfiguration
PutBucketLifecycle
PutBucketLifecycleConfiguration
PutBucketLifecycleConfiguration
PutBucketLogging
PutBucketMetricsConfiguration
PutBucketNotification
PutBucketNotificationConfiguration
PutBucketOwnershipControls
PutBucketPolicy
PutBucketReplication
PutBucketRequestPayment
PutBucketTagging
PutBucketVersioning
PutBucketWebsite
PutObject
PutObjectAcl
PutObjectLegalHold
PutObjectLockConfiguration
PutObjectRetention
PutObjectTagging
PutPublicAccessBlock
RestoreObject
SelectObjectContent
UploadPart
UploadPartCopy
WriteGetObjectResponse

License

This project is licensed under the MIT License. See the LICENSE.md file for details.

Acknowledgments

  • AWS for their comprehensive and well-documented S3 API.

About

S3 Chelak (Chelak means bucket in Uzbek) is a local development tool that emulates the AWS S3 API's interface.

Resources

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages