AzureBlobStorage

Used to set configuration options for Azure Blob Storage, which can be used as implementation of an object store.

Requires at least storageAccount, container, serviceBusNamespace and serviceBusTopicName to be provided - these will need to be accessible to whichever authentication credentials you use. Authentication for the components in the module is done via the DefaultAzureCredential class - you will need to set up authentication using any of the methods listed within the Azure documentation to be able to make use of the operations inside the modules.

For more info on setting up the necessary Azure infrastructure to use Azure Blob Storage as an XTDB object store, see the section on setting up the Azure Resource Manager Stack within our Azure docs.

Example usage, as part of a node config:

Xtdb.openNode {
remoteStorage(
objectStore = azureBlobStorage(
storageAccount = "xtdb-storage-account",
container = "xtdb-container",
serviceBusNamespace = "xtdb-service-bus-namespace",
serviceBusTopicName = "xtdb-service-bus-topic"
) {
prefix = Path.of("my/custom/prefix")
},
localDiskCache = Paths.get("test-path")
),
...
}

Types

Link copied to clipboard
@Serializable
@SerialName(value = "!Azure")
data class Factory(val storageAccount: String, val container: String, val serviceBusNamespace: String, val serviceBusTopicName: String, var prefix: Path? = null) : ObjectStoreFactory

Functions

Link copied to clipboard
fun azureBlobStorage(storageAccount: String, container: String, serviceBusNamespace: String, serviceBusTopicName: String): AzureBlobStorage.Factory
fun azureBlobStorage(storageAccount: String, container: String, serviceBusNamespace: String, serviceBusTopicName: String, configure: AzureBlobStorage.Factory.() -> Unit = {}): AzureBlobStorage.Factory

Used to set configuration options for Azure Blob Storage, which can be used as implementation of an object store.