Class WindowsAzureBlobStorageStrategy

  • All Implemented Interfaces:
    MediaStorageInitializer, MediaStorageStrategy

    public class WindowsAzureBlobStorageStrategy
    extends java.lang.Object
    implements MediaStorageStrategy, MediaStorageInitializer

    Strategy which allows to store binaries for Media objects in Windows Azure Blob Store data storage.

    Corresponding MediaFolder have to be configured with following properties:

     media.folder.{mediaFolderQualifier}.storage.strategy=windowsAzureBlobStorageStrategy
     media.folder.{mediaFolderQualifier}.connection=connectionString
     media.folder.{mediaFolderQualifier}.public.base.url=publicBaseURL
     media.folder.{mediaFolderQualifier}.containerAddress=myContainer
     

    Below is full example for MediaFolder with qualifier win:

     media.folder.win.storage.strategy=windowsAzureBlobStorageStrategy
     media.folder.win.connection=DefaultEndpointsProtocol=http;AccountName=foo;AccountKey=UasidIUAIDUAIODuAOIu9kldaldkaIOAKDa89=
     media.folder.win.public.base.url=foo.blob.core.windows.net
     media.folder.win.containerAddress=myContainer
     

    If you have more than one media folders, you can share common settings as follows:

     media.globalSettings.windowsAzureBlobStorageStrategy.connection=DefaultEndpointsProtocol=http;AccountName=foo;AccountKey=UasidIUAIDUAIODuAOIu9kldaldkaIOAKDa89=
     media.globalSettings.windowsAzureBlobStorageStrategy.public.base.url=foo.blob.core.windows.net
     media.globalSettings.windowsAzureBlobStorageStrategy.containerAddress=myContainer
     

    To control clean on init behavior use following property:

     media.globalSettings.windowsAzureBlobStorageStrategy.cleanOnInit = true / false
     
    Spring Bean ID:
    windowsAzureBlobStorageStrategy
    • Field Detail

      • CONNECTION_STRING_KEY

        public static final java.lang.String CONNECTION_STRING_KEY
        See Also:
        Constant Field Values
      • CONTAINER_ADDRESS_KEY

        public static final java.lang.String CONTAINER_ADDRESS_KEY
        See Also:
        Constant Field Values
    • Constructor Detail

      • WindowsAzureBlobStorageStrategy

        public WindowsAzureBlobStorageStrategy()
    • Method Detail

      • store

        public StoredMediaData store​(MediaStorageConfigService.MediaFolderConfig config,
                                     java.lang.String mediaId,
                                     java.util.Map<java.lang.String,​java.lang.Object> metaData,
                                     java.io.InputStream dataStream)
        Description copied from interface: MediaStorageStrategy
        Stores media data into the storage using unique location identifier. Location identifier is computed by each implementation in different way which depends on API of underlying media storage but in most cases contains a mediaId as unique part. mediaId is generated by platform for each upload attempt so it guarantees uniqueness.
        Specified by:
        store in interface MediaStorageStrategy
        Parameters:
        config - media folder configuration
        mediaId - the media identifier
        metaData - the meta data containing additional possible informations like: original filename, MIME, folder path
        dataStream - the data stream to store
        Returns:
        object containing information about stored data like unique location in the storage, size and hash for location
      • getAsFile

        public java.io.File getAsFile​(MediaStorageConfigService.MediaFolderConfig config,
                                      java.lang.String location)
        Description copied from interface: MediaStorageStrategy
        Gets the media data from the storage as file. Note that implementation of this method may be optional when underlying media storage does not support downloading data as File.
        Specified by:
        getAsFile in interface MediaStorageStrategy
        Parameters:
        config - media folder configuration
        location - the string representation of location of media data in storage
        Returns:
        the media as file
      • setCleanOnInit

        public void setCleanOnInit​(boolean cleanOnInit)