Package org.apache.jackrabbit.aws.ext.ds
Class S3Backend
- java.lang.Object
- 
- org.apache.jackrabbit.core.data.AbstractBackend
- 
- org.apache.jackrabbit.aws.ext.ds.S3Backend
 
 
- 
- All Implemented Interfaces:
- Backend
 
 public class S3Backend extends AbstractBackend A data store backend that stores data on Amazon S3.
- 
- 
Constructor SummaryConstructors Constructor Description S3Backend()
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Close backend and release resources like database connection if any.Set<DataIdentifier>deleteAllOlderThan(long min)Delete all records which are older than timestamp.voiddeleteRecord(DataIdentifier identifier)Delete record identified by identifier.booleanexists(DataIdentifier identifier)Check if record identified by identifier exists in Amazon S3.booleanexists(DataIdentifier identifier, boolean touch)This method check the existence of record in backend.Iterator<DataIdentifier>getAllIdentifiers()Returns identifiers of all records that exists in backend.StringgetBucket()longgetLastModified(DataIdentifier identifier)Return lastModified of record identified by identifier.longgetLength(DataIdentifier identifier)Return length of record identified by identifier.voidinit(CachingDataStore store, String homeDir, String config)Initialize S3Backend.voidinit(CachingDataStore store, String homeDir, Properties prop)InputStreamread(DataIdentifier identifier)Return inputstream of record identified by identifier.voidsetBucket(String bucket)voidsetProperties(Properties properties)Properties used to configure the backend.voidtouch(DataIdentifier identifier, long minModifiedDate)Update the lastModified of record if it's lastModified < minModifiedDate.voidtouchAsync(DataIdentifier identifier, long minModifiedDate, AsyncTouchCallback callback)Update the lastModified of record if it's lastModified < minModifiedDate asynchronously.voidwrite(DataIdentifier identifier, File file)It uploads file to Amazon S3.voidwriteAsync(DataIdentifier identifier, File file, AsyncUploadCallback callback)Write file to backend in asynchronous mode.- 
Methods inherited from class org.apache.jackrabbit.core.data.AbstractBackendcreateAsyncWriteExecutor, getAsyncWriteExecutor, getAsyncWritePoolSize, getConfig, getDataStore, getHomeDir, setAsyncWritePoolSize, setConfig, setDataStore, setHomeDir
 
- 
 
- 
- 
- 
Method Detail- 
initpublic void init(CachingDataStore store, String homeDir, String config) throws DataStoreException Initialize S3Backend. It creates AmazonS3Client and TransferManager from aws.properties. It creates S3 bucket if it doesn't pre-exist in S3.- Specified by:
- initin interface- Backend
- Overrides:
- initin class- AbstractBackend
- Parameters:
- store-- CachingDataStore
- homeDir- path of repository home dir.
- config- path of config property file.
- Throws:
- DataStoreException
 
 - 
initpublic void init(CachingDataStore store, String homeDir, Properties prop) throws DataStoreException - Throws:
- DataStoreException
 
 - 
writepublic void write(DataIdentifier identifier, File file) throws DataStoreException It uploads file to Amazon S3. If file size is greater than 5MB, this method uses parallel concurrent connections to upload.- Parameters:
- identifier- key of the file
- file- file that would be stored in backend.
- Throws:
- DataStoreException- for any error.
 
 - 
writeAsyncpublic void writeAsync(DataIdentifier identifier, File file, AsyncUploadCallback callback) throws DataStoreException Description copied from interface:BackendWrite file to backend in asynchronous mode.- callback- Callback interface to called after upload succeed or failed.
- Throws:
- DataStoreException
 
 - 
existspublic boolean exists(DataIdentifier identifier) throws DataStoreException Check if record identified by identifier exists in Amazon S3.- Parameters:
- identifier- identifier to be checked.
- Returns:
- true if records exists else false.
- Throws:
- DataStoreException
 
 - 
existspublic boolean exists(DataIdentifier identifier, boolean touch) throws DataStoreException Description copied from interface:BackendThis method check the existence of record in backend. Return true if records exists else false. This method also touch record identified by identifier if touch is true.- Throws:
- DataStoreException
 
 - 
touchAsyncpublic void touchAsync(DataIdentifier identifier, long minModifiedDate, AsyncTouchCallback callback) throws DataStoreException Description copied from interface:BackendUpdate the lastModified of record if it's lastModified < minModifiedDate asynchronously. Result of update is passed using appropriateAsyncTouchCallbackmethods. If identifier's lastModified > minModifiedAsyncTouchCallback.onAbort(AsyncTouchResult)is called. Any exception is communicated throughAsyncTouchCallback.onFailure(AsyncTouchResult). On successful update of lastModified,AsyncTouchCallback.onSuccess(AsyncTouchResult)is invoked.- Throws:
- DataStoreException
 
 - 
touchpublic void touch(DataIdentifier identifier, long minModifiedDate) throws DataStoreException Description copied from interface:BackendUpdate the lastModified of record if it's lastModified < minModifiedDate.- Throws:
- DataStoreException
 
 - 
readpublic InputStream read(DataIdentifier identifier) throws DataStoreException Description copied from interface:BackendReturn inputstream of record identified by identifier.- Parameters:
- identifier- identifier of record.
- Returns:
- inputstream of the record.
- Throws:
- DataStoreException- if record not found or any error.
 
 - 
getAllIdentifierspublic Iterator<DataIdentifier> getAllIdentifiers() throws DataStoreException Description copied from interface:BackendReturns identifiers of all records that exists in backend.- Returns:
- iterator consisting of all identifiers
- Throws:
- DataStoreException
 
 - 
getLastModifiedpublic long getLastModified(DataIdentifier identifier) throws DataStoreException Description copied from interface:BackendReturn lastModified of record identified by identifier.- Parameters:
- identifier- identifier of record.
- Returns:
- lastModified of the record.
- Throws:
- DataStoreException- if record not found or any error.
 
 - 
getLengthpublic long getLength(DataIdentifier identifier) throws DataStoreException Description copied from interface:BackendReturn length of record identified by identifier.- Parameters:
- identifier- identifier of record.
- Returns:
- length of the record.
- Throws:
- DataStoreException- if record not found or any error.
 
 - 
deleteRecordpublic void deleteRecord(DataIdentifier identifier) throws DataStoreException Description copied from interface:BackendDelete record identified by identifier. No-op if identifier not found.- Throws:
- DataStoreException
 
 - 
deleteAllOlderThanpublic Set<DataIdentifier> deleteAllOlderThan(long min) throws DataStoreException Description copied from interface:BackendDelete all records which are older than timestamp.- Returns:
- Setof identifiers which are deleted.
- Throws:
- DataStoreException
 
 - 
closepublic void close() throws DataStoreExceptionDescription copied from class:AbstractBackendClose backend and release resources like database connection if any.- Specified by:
- closein interface- Backend
- Overrides:
- closein class- AbstractBackend
- Throws:
- DataStoreException
 
 - 
getBucketpublic String getBucket() 
 - 
setBucketpublic void setBucket(String bucket) 
 - 
setPropertiespublic void setProperties(Properties properties) Properties used to configure the backend. If provided explicitly before init is invoked then these take precedence- Parameters:
- properties- to configure S3Backend
 
 
- 
 
-