public class S3MediaStorageStrategy extends java.lang.Object implements MediaStorageStrategy
Strategy which allows to store binaries for Media objects in Amazon S3 data storage.
Corresponding MediaFolder have to be configured with following properties:
media.folder.{mediaFolderQualifier}.storage.strategy=S3MediaStorageStrategy
media.folder.{mediaFolderQualifier}.bucketId=bucketId
media.folder.{mediaFolderQualifier}.accessKeyID=yourAccessKeyID
media.folder.{mediaFolderQualifier}.secretAccessKey=yourSecretAccessKey
media.folder.{mediaFolderQualifier}.endpoint=possibleEndpoint
where:
Below is full example for MediaFolder with qualifier s3 and bucketId myBucket:
media.folder.s3.storage.strategy=S3MediaStorageStrategy media.folder.s3.bucketId=myBucket media.folder.s3.accessKeyID=XGDKJAKDJ12345 media.folder.s3.secretAccessKey=JSJD8JSJJ3KNSkskk88374ksjhahwl4w+
If you have more than one media folders, you can share common settings as follows:
media.globalSettings.s3MediaStorageStrategy.accessKeyId=yourAccessKeyID media.globalSettings.s3MediaStorageStrategy.secretAccessKey=yourSecretAccessKey media.globalSettings.s3MediaStorageStrategy.bucketId=myBucket media.globalSettings.s3MediaStorageStrategy.endpoint=possibleEndpoint
To control clean on init behavior use following property:
media.globalSettings.s3MediaStorageStrategy.cleanOnInit = true / false
| Modifier and Type | Field and Description |
|---|---|
protected java.lang.String |
tenantPrefix |
| Constructor and Description |
|---|
S3MediaStorageStrategy() |
| Modifier and Type | Method and Description |
|---|---|
void |
delete(MediaStorageConfigService.MediaFolderConfig config,
java.lang.String location)
Delete media represented by location from the storage.
|
java.io.File |
getAsFile(MediaStorageConfigService.MediaFolderConfig config,
java.lang.String location)
Gets the media data from the storage as file.
|
java.io.InputStream |
getAsStream(MediaStorageConfigService.MediaFolderConfig config,
java.lang.String location)
Gets the media data from the storage as stream.
|
long |
getSize(MediaStorageConfigService.MediaFolderConfig config,
java.lang.String location)
Gets size of media data in bytes.
|
void |
setLocationHashService(MediaLocationHashService locationHashService) |
void |
setMediaHeadersRegistry(MediaHeadersRegistry mediaHeadersRegistry) |
void |
setS3StorageServiceFactory(S3StorageServiceFactory s3StorageServiceFactory) |
void |
setTenantPrefix() |
StoredMediaData |
store(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.
|
public void setTenantPrefix()
public StoredMediaData store(MediaStorageConfigService.MediaFolderConfig config, java.lang.String mediaId, java.util.Map<java.lang.String,java.lang.Object> metaData, java.io.InputStream dataStream)
MediaStorageStrategymediaId as unique part. mediaId is generated by platform for each upload attempt so it
guarantees uniqueness.store in interface MediaStorageStrategyconfig - media folder configurationmediaId - the media identifiermetaData - the meta data containing additional possible informations like: original filename, MIME, folder pathdataStream - the data stream to storepublic void delete(MediaStorageConfigService.MediaFolderConfig config, java.lang.String location)
MediaStorageStrategydelete in interface MediaStorageStrategyconfig - media folder configurationlocation - the string representation of location of media data in storagepublic java.io.InputStream getAsStream(MediaStorageConfigService.MediaFolderConfig config, java.lang.String location)
MediaStorageStrategygetAsStream in interface MediaStorageStrategyconfig - media folder configurationlocation - the string representation of location of media data in storagepublic java.io.File getAsFile(MediaStorageConfigService.MediaFolderConfig config, java.lang.String location)
MediaStorageStrategygetAsFile in interface MediaStorageStrategyconfig - media folder configurationlocation - the string representation of location of media data in storagepublic long getSize(MediaStorageConfigService.MediaFolderConfig config, java.lang.String location)
MediaStorageStrategygetSize in interface MediaStorageStrategyconfig - media folder configurationlocation - the string representation of location of media data in storagepublic void setLocationHashService(MediaLocationHashService locationHashService)
public void setS3StorageServiceFactory(S3StorageServiceFactory s3StorageServiceFactory)
public void setMediaHeadersRegistry(MediaHeadersRegistry mediaHeadersRegistry)
Copyright © 2018 SAP SE. All Rights Reserved.