Versity S3 Gateway

Versity Logo

Apache V2 License

The Versity S3 Gateway provides an S3 server that translates S3 client access to a modular backend service. The server translates incoming S3 API requests and transforms them into equivalent operations to the backend service. By leveraging this gateway server, applications can interact with the S3-compatible API on top of already existing storage systems. This project enables leveraging existing infrastructure investments while seamlessly integrating with S3-compatible systems, offering increased flexibility and compatibility in managing data storage.

The Versity S3 Gateway is focused on performance, simplicity, and expandability. New backend types can be added to support new storage systems. The initial backend is a posix filesystem. The posix backend allows standing up an S3 compatible server from an existing filesystem mount with a simple command.

The gateway is completely stateless. Mutliple gateways can host the same backend service and clients can load balance across the gateways.

The S3 HTTP(S) server and routing is implemented using the Fiber web framework. This framework is actively developed with a focus on performance. S3 API compatibility leverages the official aws-sdk-go-v2 whenever possible for maximum service compatibility with AWS S3.

Getting Started

Run the gateway with posix backend:

mkdir /tmp/vgw
ADMIN_ACCESS_KEY="testuser" ADMIN_SECRET_KEY="secret" ./versitygw --port :10000 posix /tmp/vgw

This will enable an S3 server on the current host listening on port 10000 and hosting the directory /tmp/vgw.

To get the usage output, run the following:

./versitygw --help

The command format is

versitygw [global options] command [command options] [arguments...]

The global options are specified before the backend type and the backend options are specified after.

Description
No description provided
Readme Apache-2.0 12 MiB
Languages
Go 75.8%
Shell 24.1%