Skip to main content

Datastores

Replibyte supports multiple datastores like AWS S3, GCP Cloud Storage (any other S3 compatible service), and your local disk.

AWS S3​

You can use the default ways of configuring AWS credentials, but if you need to specify customized credentials or a profile to use you can do so via the datastore configuration.

Generate API Keys​

To generate your API keys:

  1. Sign in into your AWS console

  2. Click on IAM or search for IAM

  3. Select the Users page.

  4. Click on Add users.

  5. Create a user with "Access Key - Programmatic Access"

caution

Restrict access as much as possible. Replibyte just need write/read access within a dedicated bucket.

  1. Set the permissions you need for this user.

Here's an example IAM Policy for a user to be able to read/write to a specific bucket.

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:Get*",
"s3:List*",
"s3:Put*"
],
"Resource": [
"arn:aws:s3:::your-bucket-name-here",
"arn:aws:s3:::your-bucket-name-here/*"
]
}
]
}
  1. Copy the Access key and the Secret

Replibyte configuration​

Here is the datastore configuration to use:

...
datastore:
aws:
bucket: <your_bucket>
profile: <your_profile> # optional
region: <your_region> # optional
credentials: # optional
access_key_id: XXX
secret_access_key: XXX
session_token: XXX # optional
...

You can omit the optional properties in which case the default configuration mechanisms will be used, like with the AWS CLI.

GCP Cloud Storage​

Generate API Keys​

To generate your API keys compatible with the S3 protocol:

Screenshot to configure GCP cloud storage

  1. Sign in into your GCP console
  2. Click on the Cloud Storage
  3. Click on the INTEROPERABILITY tab
  4. Click on CREATE A KEY
  5. Copy the Access key and the Secret

Create bucket​

Replibyte does not create the bucket automatically for GCP Cloud Storage. You'll need to create it manually.

caution

Do not turn on object "versioning".

Replibyte configuration​

Here is the datastore configuration to use:

...
datastore:
gcp:
bucket: your-bucket-name
region: us-central1
access_key: $GS_ACCESS_KEY
secret: $GS_SECRET
...

You can find the GCP Cloud Storage bucket locations here.

Other S3 compatible​

Refer to AWS S3 for the default S3 wire compatible protocol and the custom endpoint parameter:

...
datastore:
aws:
bucket: <your_bucket>
region: <your_region>
credentials:
access_key_id: XXX
secret_access_key: XXX
endpoint:
custom: 'https://your-s3-compatible-endpoint'
...

access_key_id and secret_access_key must be valid hash-based message authentication code (HMAC) keys. Refer to the service to use to get those keys.

Local disk​

Create a directory​

Replibyte does not create the directory automatically for you. You'll need to create it manually.

For example, you can create a directory by running:

mkdir /data/replibyte

Replibyte configuration​

Here is the datastore configuration to use:

...
datastore:
local_disk:
dir: <your_directory_path>
...

dir must be a readable and writable directory to the user running replibyte.

So, to use our previously created /data/replibyte directory, the datastore config must be:

...
datastore:
local_disk:
dir: /data/replibyte
...

Add another datastore​

Do you need another datastore? Replibyte is extensible and any datastore can be supported. You are free to contribute by opening an issue or/and a pull request.

To contribute, please see the contributing page.