Skip to content

Block Stores

A block store defines where flexFS stores file data blocks. Each block store maps to a bucket (or container) in a cloud object storage service. Volumes reference a block store by ID — all data blocks for that volume are stored in the configured bucket and prefix.

FieldFlagTypeRequiredDescription
idintegerautoUnique identifier (auto-assigned)
provider_code--providerCodestringcreateProvider code (e.g., aws, gcp)
region_code--regionCodestringcreateRegion code (e.g., us-east-1)
block_api_code--apiCodestringcreateStorage API protocol: s3, gcs, azure, oci
bucket--bucketstringcreateStorage bucket or container name
prefix--prefixstringKey prefix within the bucket
username--usernamestringAccess key or username
password--passwordstringSecret key or password
address--addressstringCustom endpoint address

The provider_code, region_code, block_api_code, bucket, and prefix are immutable after creation. Credentials (username, password) and the endpoint address can be updated.

Terminal window
configure.flexfs create block-store \
--providerCode aws \
--regionCode us-east-1 \
--apiCode s3 \
--bucket my-flexfs-bucket \
--prefix flexfs \
--username $USERNAME \
--password $PASSWORD

GCS is accessed via S3-compatible HMAC keys:

Terminal window
configure.flexfs create block-store \
--providerCode gcp \
--regionCode us-central1 \
--apiCode gcs \
--bucket my-flexfs-bucket \
--prefix flexfs \
--username $USERNAME \
--password $PASSWORD \
--address storage.googleapis.com
Terminal window
configure.flexfs create block-store \
--providerCode azure \
--regionCode eastus \
--apiCode azure \
--bucket my-flexfs-container \
--prefix flexfs \
--username $USERNAME \
--password $PASSWORD
Terminal window
configure.flexfs create block-store \
--providerCode oci \
--regionCode us-ashburn-1 \
--apiCode oci \
--bucket my-flexfs-bucket \
--prefix flexfs \
--username $USERNAME \
--password $PASSWORD \
--address namespace.compat.objectstorage.us-ashburn-1.oraclecloud.com

For S3-compatible stores like MinIO, Wasabi, or Ceph RGW, use the s3 API code with a custom --address:

Terminal window
configure.flexfs create block-store \
--providerCode minio \
--regionCode local \
--apiCode s3 \
--bucket flexfs \
--prefix data \
--username $USERNAME \
--password $PASSWORD \
--address minio.example.com:9000

Credentials and the endpoint address can be updated on an existing block store:

Terminal window
configure.flexfs update block-store <id> \
--username $USERNAME \
--password $PASSWORD
Terminal window
configure.flexfs update block-store <id> --address new-endpoint.example.com
Terminal window
configure.flexfs list block-stores

The list view shows id, provider_code, region_code, block_api_code, address, bucket, and prefix. Credentials are not shown in list output.

Terminal window
configure.flexfs show block-store <id>

The full detail view includes all fields. The password field is included in the output — treat it as sensitive.

Terminal window
configure.flexfs delete block-store <id>

The prefix field determines the key prefix for all blocks stored by volumes using this block store. Using different prefixes within the same bucket allows multiple block stores to share a single bucket:

Terminal window
# Production block store
configure.flexfs create block-store \
--providerCode aws --regionCode us-east-1 --apiCode s3 \
--bucket shared-bucket --prefix prod
# Staging block store (same bucket, different prefix)
configure.flexfs create block-store \
--providerCode aws --regionCode us-east-1 --apiCode s3 \
--bucket shared-bucket --prefix staging

For storage backends that require explicit credentials:

BackendUsernamePassword
Amazon S3AWS access key IDAWS secret access key
Google Cloud StorageHMAC access keyHMAC secret key
Azure Blob StorageStorage account nameStorage account access key
Oracle CloudCustomer secret key IDCustomer secret key
S3-compatibleAccess keySecret key