HomeDev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunityDoc feedbackLog In
GitHubNuGetDev CommunityDoc feedback

Storage containers

Describes how to work with BLOB storage containers available in Optimizely Digital Experience Platform (DXP) environments via the REST API.

Storage accounts are provisioned as part of a DXP project and are used for various purposes (for example, access logs or to download site contents). The storage container API allows access to the BLOB storage containers and contents. The API has the following operations.

  • List – Lists the available BLOB storage containers.
  • Generate SAS link – Generates a read-only SAS link for a blob container with a dynamic link expiration time

The storage containers API uses an authentication mechanism similar to other deployment APIs. See Deployment API authentication.

Get containers list

Request

GET api/v1.0/projects/{projectId:guid}/environments/{environment}/storagecontainers

Parameters

NameTypeDescription
projectIdGuidThe identifier of the project.
environmentstringThe name of the environment for which the BLOB storage containers are to be listed.
writableBooleanList out containers that can be write to

Response

{ 
  "success" : bool,
  "errors"  : array,
  "result"  : {
    "projectId"         : guid,
    "environment"       : string,
    "storageContainers" : array
  }
}

Generate SAS link

Request

POST api/v1.0/projects/{projectId:guid}/environments/{environment}/storagecontainers/{containerName}/saslink

Parameters

NameTypeDescription
projectIdGuidThe identifier of the project.
environmentstringThe name of the environment for which the BLOB storage containers are to be listed.
containerNamestringName of the container for which a SAS link to be generated.
writableBooleanGenerate a SAS link that has write permission

Body

{
  retentionHours : 12             
}
NameTypeDescription
retentionHoursintTotal hours until the SAS link is valid to access after which it will expire.

Default value is 24 if no body is included with the POST request.

Response

{ 
  "success" : bool,
  "errors"  : array,
  "result"  : {
    "projectId"     : guid,
    "environment"   : string,
    "containerName" : string,
    "sasLink"       : string,
    "expiresOn"     : datetime
  }
}

Epicloud Module

The EpiCloud PowerShell module adds the Get-EpiStorageContainer and Get-EpiStorageContainerSasLink cmdlets to perform the storage containers API operations using PowerShell. To install the module and connect with the authentication mechanism, see Deploy Using PowerShell for information about how to install the EpiCloud module.

Get-EpiStorageContainer

Fetches the list of BLOB storage containers for an environment in the project.

Get-EpiStorageContainer -ProjectId "76443fa4-ad6a-4517-a382-ac5900a18fa4" -Environment "Integration" -Writable

projectId                            environment storageContainers
---------                            ----------- -----------------
76443fa4-ad6a-4517-a382-ac5900a18fa4 Integration {azure-application-logs, azure-web-logs, mysitemedia}

Get-EpiStorageContainerSasLink

Generates a new read-only SAS link for a specific BLOB storage container. The parameter, -RetentionHours takes a dynamic value for the SAS link expiry; if it is not provided, a default 24 hours is used to generate the link.

Get-EpiStorageContainerSasLink -ProjectId "2372b396-6fd2-40ca-a955-57871fc497c9" `
  -Environment "Preproduction" `
  -StorageContainer "azure-web-logs" `
  -RetentionHours 2 `
  -Writable

projectId     : 76443fa4-ad6a-4517-a382-ac5900a18fa4
environment   : Integration
containerName : azure-web-logs
sasLink       : https://storagecontainer.blob.core.windows.net/mysitemedia
expiresOn     : 20/10/2020 10:13:28