NATS is a high performance distributed system including at its core a Publish/Subscribe system and a built-in persistent system that enables Streaming, Key-Value Store and Object Store. It is a complete system with built-in authentication/authorization, and multi-tenancy models, with various other features.
Most of the modern Object Storage systems such as MinIO, SeaweedFS, JuiceFS, AIStore, etc supports S3 API which simplifies the integration over HTTP. We take the same approach here with NATS-S3 enabling access to NATS Object Store over S3 protocol.
Once NATS-S3 is running connected to NATS servers, NATS Object Store can be access over S3 API. The following shows how NATS Object Store is accessible over AWS CLI.
$ aws s3 ls --endpoint-url=http://localhost:5222
$ aws s3 ls s3://bucket1 --endpoint-url=http://localhost:5222
$ aws s3 ls s3://bucket1 --endpoint-url=http://localhost:5222
$ aws s3 cp file1.txt s3://bucket1 --endpoint-url=http://localhost:5222
$ aws s3 cp s3://bucket1/file1.txt file1_copy.txt --endpoint-url=http://localhost:5222