Class WindowsAzureBlobStorageStrategy
- java.lang.Object
-
- de.hybris.platform.azure.media.storage.WindowsAzureBlobStorageStrategy
-
- All Implemented Interfaces:
MediaStorageInitializer,MediaStorageStrategy
public class WindowsAzureBlobStorageStrategy extends java.lang.Object implements MediaStorageStrategy, MediaStorageInitializer
Strategy which allows to store binaries for
Mediaobjects 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=myContainerBelow 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 Summary
Fields Modifier and Type Field Description static java.lang.StringCONNECTION_STRING_KEYstatic java.lang.StringCONTAINER_ADDRESS_KEY
-
Constructor Summary
Constructors Constructor Description WindowsAzureBlobStorageStrategy()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.lang.StringassembleLocation(java.lang.String mediaId, java.lang.String realFileName)voidcheckStorageConnection()checks if communication with external media storage is possible.voiddelete(MediaStorageConfigService.MediaFolderConfig config, java.lang.String location)Delete media represented by location from the storage.java.io.FilegetAsFile(MediaStorageConfigService.MediaFolderConfig config, java.lang.String location)Gets the media data from the storage as file.java.io.InputStreamgetAsStream(MediaStorageConfigService.MediaFolderConfig config, java.lang.String location)Gets the media data from the storage as stream.longgetSize(MediaStorageConfigService.MediaFolderConfig config, java.lang.String location)Gets size of media data in bytes.voidonInitialize()Prepares media storage on initialization.voidonUpdate()Prepares media storage on update.voidsetCleanOnInit(boolean cleanOnInit)voidsetLocationHashService(MediaLocationHashService locationHashService)voidsetStorageConfigService(MediaStorageConfigService storageConfigService)StoredMediaDatastore(MediaStorageConfigService.MediaFolderConfig config, java.lang.String mediaId, java.util.Map<java.lang.String,java.lang.Object> metaData, java.io.InputStream dataStream)Stores media data into the storage using unique location identifier.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface de.hybris.platform.media.services.MediaStorageInitializer
failOnInitUpdateError
-
-
-
-
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
-
-
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:MediaStorageStrategyStores 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 amediaIdas unique part.mediaIdis generated by platform for each upload attempt so it guarantees uniqueness.- Specified by:
storein interfaceMediaStorageStrategy- Parameters:
config- media folder configurationmediaId- the media identifiermetaData- the meta data containing additional possible informations like: original filename, MIME, folder pathdataStream- the data stream to store- Returns:
- object containing information about stored data like unique location in the storage, size and hash for location
-
assembleLocation
protected java.lang.String assembleLocation(java.lang.String mediaId, java.lang.String realFileName)
-
delete
public void delete(MediaStorageConfigService.MediaFolderConfig config, java.lang.String location)
Description copied from interface:MediaStorageStrategyDelete media represented by location from the storage.- Specified by:
deletein interfaceMediaStorageStrategy- Parameters:
config- media folder configurationlocation- the string representation of location of media data in storage
-
getAsStream
public java.io.InputStream getAsStream(MediaStorageConfigService.MediaFolderConfig config, java.lang.String location)
Description copied from interface:MediaStorageStrategyGets the media data from the storage as stream.- Specified by:
getAsStreamin interfaceMediaStorageStrategy- Parameters:
config- media folder configurationlocation- the string representation of location of media data in storage- Returns:
- the data
-
getAsFile
public java.io.File getAsFile(MediaStorageConfigService.MediaFolderConfig config, java.lang.String location)
Description copied from interface:MediaStorageStrategyGets 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:
getAsFilein interfaceMediaStorageStrategy- Parameters:
config- media folder configurationlocation- the string representation of location of media data in storage- Returns:
- the media as file
-
getSize
public long getSize(MediaStorageConfigService.MediaFolderConfig config, java.lang.String location)
Description copied from interface:MediaStorageStrategyGets size of media data in bytes.- Specified by:
getSizein interfaceMediaStorageStrategy- Parameters:
config- media folder configurationlocation- the string representation of location of media data in storage- Returns:
- the size of an media data in bytes
-
onInitialize
public void onInitialize()
Description copied from interface:MediaStorageInitializerPrepares media storage on initialization.- Specified by:
onInitializein interfaceMediaStorageInitializer
-
onUpdate
public void onUpdate()
Description copied from interface:MediaStorageInitializerPrepares media storage on update.- Specified by:
onUpdatein interfaceMediaStorageInitializer
-
checkStorageConnection
public void checkStorageConnection()
Description copied from interface:MediaStorageInitializerchecks if communication with external media storage is possible.- Specified by:
checkStorageConnectionin interfaceMediaStorageInitializer
-
setCleanOnInit
public void setCleanOnInit(boolean cleanOnInit)
-
setLocationHashService
public void setLocationHashService(MediaLocationHashService locationHashService)
-
setStorageConfigService
public void setStorageConfigService(MediaStorageConfigService storageConfigService)
-
-