Skip to content

Release Notes - v0.3.0

With v0.3.0 a few things changed in the overall project:

  • the s3gw-core repository has been renamed s3gw-tools;
  • the main repository is now s3gw;
  • the s3gw repository contains documentation and all other s3gw-related projects as submodules.

We are also releasing containers for s3gw and s3gw-ui with this version. Read below for more information.

This release is meant for testing and feedback gathering. It is not recommended for production use.

Should a bug be found and not expected to be related to the list below, one should feel encouraged to file an issue in our github repository.


What we support

At the moment we support creating buckets, doing basic operations on objects (PUT/GET/DELETE), and listing bucket contents.

What we don't support

  • deleting buckets.
  • multipart uploads.
  • everything else not specified in the previous section.

What Changed

This version introduces a new on-disk format for s3gw. Previous deployments will not work and will need to be redeployed.


  • rgw/sfs: new on-disk format, based on filesystem hash tree for data and sqlite for metadata.
  • rgw/sfs: maintain one single sqlite database connection.
  • rgw/sfs: protect sqlite access with 'std::shared_lock'; allows multiple parallel reads, but only one write at a time.
  • rgw/sfs: allow copying objects; the current implementation breaks S3 semantics by returning EEXIST if the destination object exists.

Known Issues

  • object copy fails if the destination object exists; this will be addressed at a later stage.


  • rgw/sfs: no longer create directory hierarchy when initializing the store; instead, ensure the sfs path exists by creating its directory if missing.


  • rgw/sfs: remove unused data and metadata functions, artifacts from our previous file-based implementation.


The UI has seen several improvements and fixes.


Please refer to our documentation on how to start playing with the s3gw. For Helm chart fans, information can be found here.