Azure Blob Storage
Azure Blob Storage is used to store arbitrary unstructured data like images, files, backups, etc. Aidbox offers integration with Blob Storage to simplify upload and retrieval of data. You can read more on Blob Storage internals here. All examples from this tutorial are executable in the REST Console.
Set up Azure storage account
First of all, we have to create AzureAccount resource with id = account name and key = secret key of your account. Your account name and keys can be found under "Access keys" section in Azure Storage account settings.
Parameters
id
(required): Azure storage Account namekey
(required): Azure storage Account key
Example
POST /AzureAccount
id: aidbox
key: long-base64-encoded-string
Register AzureContainer
Go to Azure console and create a container, for example, "avatars". Now we can create an AzureContainer resource:
Parameters
id
(optional): id to reference this container in Aidbox requestsaccount
(required): reference toAzureAccount
resourcestorage
(required): Azure resource group namecontainer
(required): Azure container name
Example
POST /AzureContainer
id: avatars
account: {id: aidbox, resourceType: AzureAccount}
storage: aidbox
container: avatars
Get Shared Access Signature (SAS) to upload file
When the configuration is complete, you can request a temporary URL to upload blobs. By default, such URL expires in 30 minutes. You can provide a blob name or just the extension (name will be generated).
Body parameters
blob
(required): file nametimeout
(optional, default: 30): timeout in minutes
Example
POST /azure/storage/avatars
blob: pt-1.png
Body
url
: signed url to upload file
Example
url: https://aidbox.blob.core.windows.net/avatars/pt-1.png?sr=signature
Configure CORS in Azure if you want to send data from the browser:
(2).png>)
Now you can upload file from your UI using signed URL provided by Aidbox:
//onChange input[type=file]
var file = inputEvent.file.originFileObj;
fetch("<signed-url>", {
method: 'PUT',
body: file,
headers: {'x-ms-blob-type': 'BlockBlob'}
}).then(...)
Get SAS to read a file
To read the uploaded file you can request a signed URL with:
GET /azure/storage/avatar/pt-1.png
---
status: 200
url: <read-signed-url>
# or
GET /azure/storage/avatar/pt-1.png?redirect=true
---
status: 302
headers:
Location: <read-signed-url>
For example, you can use a trick with redirect to render an image:
<img src="/azure/storage/avatar/pt-1.png?redirect=true"/>