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.
Block Store Fields
Section titled “Block Store Fields”For the full list of block store fields, their flags, types, and defaults, see Block Store Fields in the configure.flexfs CLI reference. Per-backend meanings for --username and --password are given under Credential Handling below.
The provider_code, region_code, and block_api_code are immutable after creation. Credentials (username, password), the endpoint address, the prefix, and the OCI --namespace can be updated. configure.flexfs deliberately does not offer --bucket on update; a bucket name can only be changed through the REST API, and is guarded as described below.
Creating a Block Store
Section titled “Creating a Block Store”Amazon S3
Section titled “Amazon S3”configure.flexfs create block-store \ --providerCode aws \ --regionCode <region> \ --apiCode s3 \ --bucket <bucket> \ --prefix <prefix> \ --username <username> \ --password <password>Google Cloud Storage
Section titled “Google Cloud Storage”GCS uses the native Cloud Storage API. Pass a service account JSON key as --password, or omit credentials entirely to use the workload’s application default credentials:
configure.flexfs create block-store \ --providerCode gcp \ --regionCode <region> \ --apiCode gcs \ --bucket <bucket> \ --prefix <prefix> \ --password "$(cat service-account.json)"--address is not needed for standard GCS. Set it only to reach a restricted VIP (restricted.googleapis.com) or a local emulator.
Azure Blob Storage
Section titled “Azure Blob Storage”--username is the storage account name and --password its access key:
configure.flexfs create block-store \ --providerCode azure \ --regionCode <region> \ --apiCode azure \ --bucket <container> \ --prefix <prefix> \ --username <username> \ --password <password>The endpoint defaults to the public commercial cloud, <storage-account>.blob.core.windows.net. Reaching a sovereign cloud, Azure Stack, or a custom domain requires --address, given as the full service host including the account label:
configure.flexfs create block-store \ --providerCode azure \ --regionCode <region> \ --apiCode azure \ --bucket <container> \ --username <username> \ --password <password> \ --address <username>.blob.core.usgovcloudapi.netThe Azurite emulator addresses the account in the path rather than as a subdomain, so give --address that form:
configure.flexfs create block-store \ --providerCode azure \ --regionCode <region> \ --apiCode azure \ --bucket <container> \ --username devstoreaccount1 \ --password <azurite-key> \ --address http://127.0.0.1:10000/devstoreaccount1Azure is the only API whose --address may carry a path. For the others the bucket is a separate field, so a path there is rejected as a likely pasted bucket URL.
Oracle Cloud Infrastructure
Section titled “Oracle Cloud Infrastructure”OCI requires --namespace in addition to --bucket:
configure.flexfs create block-store \ --providerCode oci \ --regionCode <region> \ --apiCode oci \ --bucket <bucket> \ --namespace <namespace> \ --prefix <prefix> \ --username <username> \ --password <password>To correct a namespace on an existing OCI block store:
configure.flexfs update block-store <id> --namespace <namespace>S3-Compatible Storage
Section titled “S3-Compatible Storage”For S3-compatible stores like MinIO, Wasabi, or Ceph RGW, use the s3 API code with a custom --address:
configure.flexfs create block-store \ --providerCode minio \ --regionCode <region> \ --apiCode s3 \ --bucket <bucket> \ --prefix <prefix> \ --username <username> \ --password <password> \ --address minio.example.com:9000Updating a Block Store
Section titled “Updating a Block Store”Credentials, the address, the prefix, and the OCI --namespace can be updated on an existing block store. The prefix and the bucket name are relocation-guarded, as described above.
configure.flexfs update block-store <id> \ --username <username> \ --password <password>configure.flexfs update block-store <id> --address new-endpoint.example.comListing Block Stores
Section titled “Listing Block Stores”configure.flexfs list block-storesThe list view shows id, provider_code, region_code, block_api_code, address, bucket, and prefix. Credentials are not shown in list output.
Viewing Block Store Details
Section titled “Viewing Block Store Details”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.
Deleting a Block Store
Section titled “Deleting a Block Store”configure.flexfs delete block-store <id>Prefix and Bucket Design
Section titled “Prefix and Bucket Design”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:
# Production block storeconfigure.flexfs create block-store \ --providerCode aws --regionCode <region> --apiCode s3 \ --bucket <bucket> --prefix prod
# Staging block store (same bucket, different prefix)configure.flexfs create block-store \ --providerCode aws --regionCode <region> --apiCode s3 \ --bucket <bucket> --prefix stagingCredential Handling
Section titled “Credential Handling”For storage backends that require explicit credentials:
| Backend | Username | Password |
|---|---|---|
| Amazon S3 | AWS access key ID | AWS secret access key |
| Google Cloud Storage | (unused) | Service account JSON key (leave empty for application default credentials) |
| Azure Blob Storage | Storage account name | Storage account access key |
Oracle Cloud (oci API) | JSON identity document: tenancy_ocid, user_ocid, region, key_id, key_fingerprint | PEM-encoded RSA private key |
| S3-compatible | Access key | Secret key |