Commercial features - Genbox/SimpleS3 GitHub Wiki

SimpleS3 comes in 2 variants:

  1. Free - Everyone can use this variant, except for commercial projects with a paid product.
  2. Commercial - Contains a lot of extra features. Only commercial sponsors may use this version.

The list below describes the features included in the commercial version. You can see them in action here.

Support for other providers

SimpleS3 supports multiple providers and more will be added in the future. Currently, we have the following commercial-only providers:

  • Backblaze B2

Encryption support in Profile Manager

ProfileManager is an extension that can handle credentials for you. It supports writing credentials to disk in a profile directory you choose.

In the commercial version, you get 2 additional features:

  1. On-disk encryption - Your secret access keys will be stored using Microsoft.AspNetCore.DataProtection. It automatically rotates encryption keys with strong crypto to keep your keys secure.
  2. In-memory encryption - Your access key is stored in an encrypted format until it is needed, then it is decrypted, used and the decrypted key is cleared from memory. This protects against same-host memory credential-stealing attacks.

High-level extensions

Amazon has certain constraints, such as buckets needs to be empty before you can delete them, but when you try to delete the objects, you will find that you have to list all versions of the objects and delete those too. A simple task can easily become a huge mess, and sometimes you just want it to work.

With the commercial extensions, you'll get just that. We have the following extensions:

Buckets

  • ListAllBuckets - List all buckets as a simple enumerable.

Objects

  • DeleteAllObjects - Delete all objects in a bucket. Amazon requires you to list objects first and then call delete on them. This extension does that for you in a fast and efficient manner using HTTP pipelining.
  • ListAllObjects - Amazon can only list 1000 objects at a time. With this extension, you can list all the objects in a bucket. No need to keep track of continuation tokens.

Multipart

  • MultipartDownload - Multipart download an object with a single method call.
  • MultipartUpload - Multipart upload with a single call. Just point to the file you want to be uploaded. Supports using multiple threats to upload.

Request object pooling

When you build a request and send it to Amazon, you have just allocated multiple kilobytes of data which are then garbage collected. By using the request pool, the requests you sent through any of the clients (ObjectClient, BucketClient, etc.) will automatically be pooled by SimpleS3, minimizing allocations and speeding up your next requests.