Liking cljdoc? Tell your friends :D

Crux Azure Blobs

You can use Azure’s Blob Storage as Crux’s 'document store'.

Documents are serialized via Nippy.

Project Dependency

In order to use Blob Storage within Crux, you must first add this module as a project dependency:

deps.edn
juxt/crux-azure-blobs {:mvn/version "{crux_version}-alpha"}
pom.xml
<dependency>
    <groupId>juxt</groupId>
    <artifactId>crux-azure-blobs</artifactId>
    <version>{crux_version}-alpha</version>
</dependency>

Using Azure Blobs

Replace the implementation of the document store with crux.azure.blobs/->document-store

JSON
{
  "crux/document-store": {
    "crux/module": "crux.azure.blobs/->document-store",
    "sas-token": "your-sas-token",
    "storage-account": "your-storage-account",
    "container": "your-container-name"
  },
}
Clojure
{:crux/document-store {:crux/module 'crux.azure.blobs/->document-store
                       :sas-token "your-sas-token"
                       :storage-account "your-storage-account"
                       :container "your-container-name"}}
EDN
{:crux/document-store {:crux/module crux.azure.blobs/->document-store
                       :sas-token "your-sas-token"
                       :storage-account "your-storage-account"
                       :container "your-container-name"}}

You’ll need to create a Storage Account, then a Container for storing the documents.

Then you need to create a SAS token for the Storage Account via the Azure portal.

  • Under Storage Account, go to Settings.

  • Then click Shared access signature.

  • Create a new SAS token with Allowed services: Blob, Allowed resources types: Container and Object. You can select all allowed permissions.

  • Select needed Start and expiry date/time, Allowed IP addresses if applicable and HTTPS only. Leave the rest of the options as-is.

Parameters

  • sas-token (string, required): 'shared access signature' for your chosen container.

  • storage-account (string, required)

  • container (string, required)

  • doc-cache-size (int): size of in-memory document cache

Can you improve this documentation? These fine people already did:
Daniel Mason, Dan Mason, James Henderson & Henrik Mohr
Edit on GitHub

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close